创建每列的平均值并将其放入工作区

时间:2012-12-08 07:35:37

标签: matlab for-loop matrix

以下是我的matlab代码:

  for t=1:5
    data=[1 3 5 7 9;2 4 6 8 10];
    k(t)=mean(data(:,t));
    end

结果,k(1)= 1.5,k(2)= 3.5,...,k(5)= 9.5。 我想创建一个结合所有这些结果的结果,如下所示:

结果= [1.5; 3.5; 5.5; 7.5; 9.5]

做任何好主意?谢谢。

2 个答案:

答案 0 :(得分:2)

data=[1 3 5 7 9;2 4 6 8 10];
R = mean(data)';

修订:

如上所述,如果这个解决方案不符合您的预期,我不确定您的要求。从你的标题你提到'放入工作区'?这是否意味着你想要'R'中每个值的变量?如果是这样,请尝试:

for i = 1:5    
    kk = R(i);
    % eval(sprintf('k%d = kk', i)); % better to avoid eval use assignin instead
    assignin('base',['K' sprintf('%d',i)],kk);
end

答案 1 :(得分:2)

你可以使用,

data = [1 3 5 7 9; 2 4 6 8 10];
k = mean( data );        % k = [1.5, 3.5, 5.5, 7.5, 9.5];
% To get a column vector use:
k = mean( data )';       % k = [1.5; 3.5; 5.5; 7.5; 9.5];

查看mean的文档以获取更多详细信息。