我有以下数据:ET = [1 3 5 7 6 4]
,以下是我的代码:
for i=1:3
meanET(i)=ET(:,1+(2*i-2)); %//for i=1,extract ET column 1 data
stdET(i)=ET(:,2+(2*i-2));
totalET(i)=meanET(i)+stdET(i)
end
然而,MATLAB显示的错误表明在赋值A(I)=B
中,B和I中的元素数必须相同,因此我将代码修改为:
for i=1:3
meanET=ET(:,1+(2*i-2));%for i=1,extract ET column 1 data
stdET=ET(:,2+(2*i-2));
totalET=meanET+stdET
end
运行后一个代码后,它显示meanET=6
,stdET=4
和totalET=10
,这意味着它只在工作区中存储i = 3的数据。我想得到像这样的结果
工作区中的totalET=[4 12 10]
,对应i = 1, 2, 3
。我该怎么做?
答案 0 :(得分:3)
或者您可以使用简单的矢量化解决方案:
>> totalET = ET(1:2:5) + ET(2:2:6)
totalET =
4 12 10
答案 1 :(得分:2)
您应该在代码的开头声明目标数组:
meanET=zeros(size(ET,1),3);
stdET=zeros(size(ET,1),3);
for i=1:3
meanET(:,i)=ET(:,1+(2*i-2));
stdET(:,i)=ET(:,2+(2*i-2));
end
totalET=meanET+stdET