Matlab 创建每个列的平均值并将其放入工作区
下面是我的matlab代码:Matlab 创建每个列的平均值并将其放入工作区,matlab,for-loop,matrix,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] 有什么好主意吗?谢谢 data=[1 3 5 7 9;2 4 6 8 10]; R = mean(data)'; 修正案: 如上所述,如果这
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]
有什么好主意吗?谢谢
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
修正案:
如上所述,如果这个解决方案不是您所期望的,我不确定您的要求是什么。在你的标题中你提到“放入工作区”?这是否意味着您需要为“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
你可以用
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];
有关详细信息,请查看的文档。您可以使用
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];
有关更多详细信息,请查看的文档。谢谢您的ans,,我知道如何使用转置,问题是如果必须在代码中使用for循环,我想知道如何存储它。@TonyYEe您的问题不清楚。
的循环是否在函数中?如果要为每个值创建变量,请参见编辑Kate的答案。基于您提供的代码Result==k'
。你能为这个问题提供一个更好的描述吗?谢谢你的回答,我知道如何使用转置,问题是如果在这段代码中必须使用for循环,我想知道如何存储它。@TonyYEe你的问题不清楚。的循环是否在函数中?如果要为每个值创建变量,请参见编辑Kate的答案。基于您提供的代码Result==k'
。你能为这个问题提供一个更好的描述吗?谢谢你的ans,我知道如何使用转置,问题是如果必须在代码中使用for循环,我想知道如何存储它。谢谢你的ans,我知道如何使用转置,问题是如果必须在代码中使用for循环,我想知道如何存储它。基于你对答案的评论,你不理解你的问题,或者你解释错了,-1。基于你对答案的评论,你不理解你的问题,或者你解释错了,-1。