如何在MATLAB中将运算结果拆分至单独变量中?
MATLAB:将方程解分配到多个独立变量
问题原因
eqs\soltns返回的是6×1列向量,属于单个输出对象,MATLAB不支持直接将单个列向量分配给逗号分隔的多个变量——这就是你直接写[A, B, C, D, E, F] = eqs\soltns;失败的原因。
快捷解决方法
方法1:转置为行向量后直接分配
把列向量转置成1×6行向量,即可直接分配给多个变量:
[A, B, C, D, E, F] = (eqs\soltns)';
方法2:用num2cell+deal拆分列向量
先把列向量转成cell数组,再通过deal函数将每个cell元素分配给对应变量:
[A, B, C, D, E, F] = deal(num2cell(eqs\soltns){:});
方法3:紧凑化索引赋值
如果想保留索引逻辑,也可以写成更简洁的形式:
results = eqs\soltns; [A, B, C, D, E, F] = results(1), results(2), results(3), results(4), results(5), results(6);
内容的提问来源于stack exchange,提问作者Joseph Heimerl
相关产品推荐
相关产品推荐

