如何循环命令不同的变量名称吗?

4视图(30天)
我在一个项目工作,我有四组数据,需要做几次手术每一组,我试图缩短代码。
说一个操作是重塑,然后其他几个操作,所以首先:
alpha_list =重塑(α,x * y, 1);
beta_list =重塑(β,x * y, 1);
gamma_list =重塑(γ,x * y, 1);
nu_list =重塑(ν,x * y, 1);
…然后三个其他事情需要完成每一组。
我可以重命名α,β,γ,简单的νa, b, g, n如果需要。
我想知道的是如何创建一个for循环,使用数组存储名称的一部分(alpha_listα)
所以如果我有一个数组= [b g n] a_list可以执行操作,b_list, g_list, n_list,如果我能说:
i = 1:4
数组(我)_列表=重塑(数组(i), x * y, 1);
结束
我想问题是,数组(1)_list a_list是不一样的,这可能需要一些额外的代码,也许为了得到循环附加到工作方式,但它仍然可以节省我很多行如果我可以循环工作。
提前谢谢!
1评论
大卫•希尔
大卫•希尔 2022年3月25日
你应该避免多个变量具有类似的名字。更好的指数为一个变量(使用3 d数组)。
alpha_list =兰迪(100、10、10、5);%你所有的列表存储在一个变量中
k = 1:5
(:,k) =重塑(alpha_list (:,:, k), [], 1);%然后要容易得多
结束

登录置评。

答案(2)

沃尔特·罗伯森
沃尔特·罗伯森 2022年3月25日
它是 可能的 要做到这一点,但我们坚决不推荐这样做。
对你的情况下,我建议使用单元阵列,也会让你使用更紧凑的代码。
C ={α,β,γ,ν};
array_list = cellfun (@ (m)重塑(m, [], 1),“统一”,0);
array_list{1}现在α(:),array_list{2}现在β(:)等等。

杰夫•米勒
杰夫•米勒 2022年3月25日
编辑:Torsten 2022年3月26日
另一种替代方法是让一个函数 所有 必要的操作每一个向量,每个向量,然后调用一次该函数类似
函数[重塑,operation2result operation3result] = manyoperations (inputvector)
重塑=重塑(inputvector [], 1);
%其他操作所需的输入向量
结束
[alpha_list, alpha2 alpha3] = manyoperations(α);
[beta_list、beta2 beta3] = manyoperations(β);
%等

类别

找到更多的在循环和条件语句帮助中心文件交换

s manbetx 845


释放

R2020b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!