gpt4 book ai didi

matlab - 动态更改变量名

转载 作者:太空宇宙 更新时间:2023-11-03 20:15:39 25 4
gpt4 key购买 nike

我有一个循环计算多个的平均值 (m)、标准偏差 (std) 和标准误差 (sem)状况。由于每个条件都有自己的 mstdsem,因此我想相应地命名我的输出(它们应该是 double 格式) .例如: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是输出mstdsem的函数。 M 是包含我的数据的矩阵。问题是 strcat 似乎无法用作更改输出名称的方法。例如,对于迭代 1,我的输出不是给我 cond1_m,而是一个名为 strcat 的矩阵。

有人能帮忙吗?

最佳答案

请考虑使用一种非常适合您的目的的结构。顺便说一句,不要使用 cond 作为变量名。有一个函数叫做 cond计算矩阵的条件数。在这种情况下使用 cond 会使这个函数黯然失色。您可以保留 cond1cond2 等字段的原样:

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;

关于matlab - 动态更改变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37060348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com