0

我有以下数据: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 显示一个错误,指出在 assignmentA(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=6stdET=4totalET=10,这意味着它只将 i=3 的数据存储在工作区中。我想得到像 totalET=[4 12 10]在工作区中一样的结果,对应于i = 1, 2, 3. 我怎么做?

4

2 回答 2

3

或者您可以使用简单的矢量化解决方案:

>> totalET = ET(1:2:5) + ET(2:2:6)

totalET =
    4   12   10
于 2012-12-10T10:17:26.067 回答
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
于 2012-12-10T08:44:26.783 回答