我在matlab中真的很生气。我正在尝试制作一些简单的循环来存储要在以后平均的数据。为简单起见,假设我有一个包含此数据的cvs文件:
日,秒,椅子,桌子
1,1.4,38,54
2,0,45,72
3,1,37,60
1,0,45,72
我想把第1天的每一次出现都放到一个垃圾箱里,包括剩下的那一行,然后将所有第1天的椅子,桌子和秒放平。
这是我打开csv文件后的代码,但它不是在读取我的'if'循环。
day= data(:,1);
sec= data(:,2);
chair= data(:,3);
table= data(:,4);
for m = 1:length(data);
if day==1;
sec1(:,1)=sec(:,1);
chair1(:,1)= chair(:,1);
table1(:,1)= data(:,1);
end
end
另外,我知道我需要在循环中收集数据,但又忘记了如何,我试图查找的例子没有帮助。有什么想法吗?
答案 0 :(得分:0)
此示例代码修复了我认为是您的错误。
data = [1 1.4 38 54; ...
2 0 45 72; ...
3 1 37 60; ...
1 0 45 72];
day= data(:,1);
sec= data(:,2);
chair= data(:,3);
table= data(:,4);
sec1 = [];
chair1 = [];
table1 = [];
for m = 1:size(data,1);
if day(m)==1;
sec1(end+1,1)=sec(m,1);
chair1(end+1,1)= chair(m,1);
table1(end+1,1)= data(m,1);
end
end
以下以更精简的形式提供相同的结果
data = [1 1.4 38 54; ...
2 0 45 72; ...
3 1 37 60; ...
1 0 45 72];
day= data(:,1);
sec= data(:,2);
chair= data(:,3);
table= data(:,4);
sec1 = sec(day==1,1);
chair1 = chair(day==1,1);
table1 = table(day==1,1);