2012-12-08 23 views
0

下面是我的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]

不限好主意做??感谢。

+0

根据你对答案的评论,你不明白你的问题,或者你错误地解释了-1。 –

回答

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 
+0

谢谢4您的答案,我知道如何使用转置,问题是我想知道如何存储它,如果必须在此代码中使用for循环。 –

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的文档了解更多信息。

+0

谢谢4您的答案,我知道如何使用转置,问题是我想知道如何存储它,如果必须在此代码中使用循环。 –

+0

@TonyYEe你的问题不清楚。函数内部的'for'循环是什么?如果您想为每个值创建变量,请参阅编辑Kate的答案。根据您提供的结果'Result == k''。你能否提供一个更好的问题描述。 – mythealias