我有一个循环可以计算多个条件的平均值(/OAuthCallback
),标准偏差(m
)和标准误差(std
)。因为每个条件都有自己的sem
,m
和std
,我想相应地命名我的输出(它们应该是双重格式)。例如:sem
,cond1_m
,cond1_std
,cond1_sem
,cond2_m
,cond2_std
等。
这就是我的尝试:
cond2_sem
注意: cond={'cond1','cond2','cond3','cond4','cond5',...}
for a=1:length(cond)
[strcat(cond{a},'_m'),strcat(cond{a},'_std'),strcat(cond{a},'_sem')]=compute_stats(M(:,a));
end
是输出compute_stats
,m
和std
的函数。 sem
是包含我的数据的矩阵。问题是M
似乎不能作为更改输出名称的方法。例如,对于迭代1,我的输出是一个名为strcat的矩阵,而不是给我strcat
。
有人可以帮忙吗?
答案 0 :(得分:7)
考虑使用非常适合您的目的的结构。顺便说一句,不要使用cond
作为变量名。有一个名为cond
的函数可以计算矩阵的条件数。在这种情况下使用cond
会使这个功能蒙上阴影。您可以按原样保留cond1
,cond2
等字段:
con={'cond1','cond2','cond3','cond4','cond5',...};
result = struct();
for a=1:numel(con)
[m, stdd, sem] = compute_stats(M(:,a));
result.([con{a} '_m']) = m;
result.([con{a} '_std']) = stdd;
result.([con{a} '_sem']) = sem;
end
result
包含您想要的编译结果。然后,您将使用正确的字符串名称访问正确的矩阵。例如,如果您想要第一个条件的std
输出,请执行:
out = result.cond1_std;