我有以下数据: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
。我该怎么做?
或者
你可以选择一个简单的矢量化解决方案:
>> totalET = ET(1:2:5) + ET(2:2:6)
totalET =
4 12 10
你应该在代码的开头声明你的目标数组:
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