这很简单但我在Matlab中处理数据类型时遇到了一些问题。
下面会创建一个简单的数组。
l=[]
for i=1:10
# do something here
# i = i* i;
end
plot(l) # would happily plot it
在下面的代码中,data
从每行包含字符串的文件加载到工作区。每行作为每一行,数据作为String
。
numbers=[]
index = 1;
split_data = regexp(data, ' ', 'split');
for eachLine=split_data
eachLine = eachLine{:}
num = eachLine(3) # this is the value I need
numbers(index) = num
index = index + 1
end
plot(numbers)
就是这样。这就是我想要做的。从字符串中提取数字,存储在矩阵中,绘制它。但是在迭代之后,numbers
对象显示为整数而不是向量/矩阵!!
谁能告诉我哪里出错了以及如何解决?
答案 0 :(得分:0)
尝试:
numbers = [numbers num];
取代
numbers(index) = num
答案 1 :(得分:0)
如果我理解正确,你有一个字符串的单元格数组,每行有一个字符串,每行第三个字是一个数字。 您可能希望将代码更改为:
% example data variable
data={'air is 3 4 all';'lov3 K 9 s';'this is 7 o''clock'};
split_data = regexp(data, ' ', 'split');
len=length(split_data);
numbers=zeros(1, len);
for index=1:len
line = split_data{index};
num = line(3); % this is the value I need
numbers(index) = str2double(num);
end
plot(numbers)