有可能扩大[45 0 {9},{2},{9}]0

1视图(30天)
Triveni
Triveni 2016年8月9日
评论道: Triveni 2016年8月10日
我有一个矩阵[45 0{9},{2},0{9}]我想扩大它
[0 0 0 0 0 0 0 0 0 45 45 0 0 0 0 0 0 0 0 0]吗?和它的工作原理就像循环k, [45 0 k {}, {}, 0 k {}]
请帮助。
2的评论
Triveni
Triveni 2016年8月9日
实际上,我必须解决大量数据刺激从lyx复制粘贴。
当我复制粘贴给我[-45 _{2},120、90、60、120、90、-45、90、-45、60、90 _{2},45岁,120年,90年,120年,60岁,30岁,45岁,120年,45岁的90年,60岁,30岁,45岁,30 _{3},120年60 _{2},30)这种类型的格式。

登录置评。

接受的答案

图像分析
图像分析 2016年8月9日
如果你从那个特殊格式的字符串,那么这段代码将解析它并产生输出向量
str =(-45 _{2},120、90、60、120、90、-45、90、-45、60、90 _{2},45岁,120年,90年,120年,60岁,30岁,45岁,120年,45岁的90年,60岁,30岁,45岁,30 _{3},120年60 _ {2},30)”
%去掉括号
str (str = =“(”)= [];
str (str = =“]”)= [];
话说= strsplit (str,”、“)
输出= [];
k = 1:长度(单词)
%看看有一个支撑
thisWord =话说{k}
braceLocation = strfind (thisWord,“{”);
如果isempty (braceLocation)
%没有支撑。
=纯str2double (thisWord);
theRepeat = 1;
其他的
%有支撑。
次数= str2double (thisWord (1: braceLocation-2));
theRepeat = str2double (thisWord (braceLocation + 1: end-1));
结束
流(“重复% d % d次。\ n”纯,theRepeat);
%重复这个所需数量的次数和附加到输出。
输出=[输出,数字*的(theRepeat)];
结束
% Echo命令窗口:
输出
6个评论
Triveni
Triveni 2016年8月10日
谢谢,有些序列之间没有逗号。我将改变它。

登录置评。

更多的答案(3)

史蒂文的主
史蒂文的主 2016年8月9日
如果你写你的问题略有不同,您可以使用 repelem
45 0 v = repelem ([0], [9 2 9])
2的评论
Triveni
Triveni 2016年8月9日
我可以打印([0 45 0],[9 2 9]),“[45 0 {9},{2},{9}]0”

登录置评。


肖恩·德Wolski
肖恩·德Wolski 2016年8月9日
这应该这样做:
str =(45 0 {9},{2},{9}0)';
expr =”(? < num > \ d *)”;%匹配数字
num = cellfun (@str2double regexp (expr str,“匹配”));%提取和转换
repelem (num(1:2:结束),num(2:2:结束)% repelem
2的评论
Triveni
Triveni 2016年8月9日
谢谢,但是无法计数底片,
str =“[[45 0 _ {9}_ {2},-45 _ {2},0 _ {7}]]”;
expr =”(? < num > \ d *)”;%匹配数字
num = cellfun (@str2double regexp (expr str,“匹配”));
repelem (num(1:2:结束),num(2:2:结束)% repelem

登录置评。


沃尔特·罗伯森
沃尔特·罗伯森 2016年8月9日
粘贴到一个字符串,然后您可以使用字符串处理。例如你可以使用 regexprep 与动态正则表达式${}替换输出结构。

s manbetx 845

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!