首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带单元输入参数的循环

带单元输入参数的循环
EN

Stack Overflow用户
提问于 2018-06-17 17:41:54
回答 1查看 34关注 0票数 0

我有4个数据矩阵50x35双(Diff_CT, Diff_Imp, Diff_F1, Diff_F2)

我要对每个矩阵执行严格相同的计算,突然,我想要创建一个for循环,其中矩阵的部分名称是输入参数。

一个我试过但没有成功的例子

代码语言:javascript
运行
复制
parameters = {'CT', 'Imp', 'F1', 'F2'};

for i_parameters = 1: numel(parameters)
    my_parameters = parameters{i_parameters};

    ['Diff_',(my_parameters),'_T0'] = ['Diff_',(my_parameters)](:,1) ['Diff_',(my_parameters)](:,8) ['Diff_',(my_parameters)](:,15) ['Diff_',(my_parameters)](:,22) ['Diff_',(my_parameters)](:,29)];
    ['DiffMean',(my_parameters),'0'] = mean(mean(['Diff_',(my_parameters),'_T0'));
    ['Diffstd',(my_parameters),'0'] = std(std(['Diff_',(my_parameters),'_T0'));
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-17 19:44:33

从来没有很好的理由来创建动态变量名。他们制造的问题之一就是你所经历的。使用structs/ cell数组/ ND数组;以适合这种情况的内容为准。在您的例子中,struct似乎更合适,如下所示:

代码语言:javascript
运行
复制
%Converting your data matrices into a struct
Diff_ = struct('CT',Diff_CT, 'Imp',Diff_Imp, 'F1',Diff_F1, 'F2', Diff_F2);  

for i_parameters = 1 : numel(parameters)       
    my_parameters = parameters{i_parameters}; 

    %Creating structures with your variables as their fields        
    Diff_.([my_parameters '_T0']) = [Diff_.(my_parameters)(:,1)  ...
        Diff_.(my_parameters)(:,8)  Diff_.(my_parameters)(:,15) ...
        Diff_.(my_parameters)(:,22) Diff_.(my_parameters)(:,29)];

    DiffMean.([my_parameters '0']) = mean(mean(Diff_T0.(my_parameters)));
    Diffstd.([my_parameters '0'])  = std(std(Diff_T0.(my_parameters)));
end

您期望拥有的变量Diff_CT_T0DiffMeanCT0DiffstdCT0现在可以分别以Diff_.CT_T0DiffMean.CT0Diffstd.CT0等形式访问。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50899050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档