我有大约50个不同的数组,我想对所有数组执行以下操作:
data1(isnan(data1)) = 0;
coldata1 = nonzeros(data1);
avgdata1 = mean(coldata1);
以及data2
,data3
等等...目标是将data1
转换为不带NaN
s的向量,然后取一个均值,保存向量和coldata1
和avgdata1
的平均值。
我正在寻找一种方法来为所有50个人自动化这个,而不是将其复制50次并更改数字...任何想法?我一直在玩eval
但到目前为止没有运气。还尝试过:
for y = 1:50
data(y)(isnan(data(y))) = 0;
coldata(y) = nonzeros(data(y));
avgdata(y) = mean(coldata(y));
end
答案 0 :(得分:2)
你可以用eval
来做,但实际上不应该这样做。而是使用此处建议的单元格数组:Create variables with names from strings
即
for y = 1:50
data{y}(isnan(data{y})) = 0;
coldata{y} = nonzeros(data{y});
avgdata{y} = mean(coldata{y});
end
另请阅读How can I create variables A1, A2,...,A10 in a loop?了解其他选项。