gpt4 book ai didi

matlab - 如何在 Matlab 的循环中自动调用符号变量

转载 作者:行者123 更新时间:2023-12-04 13:50:18 25 4
gpt4 key购买 nike

在 Matlab 中有没有使用循环索引来调用符号变量的方法?例如,考虑以下代码,其目标是将符号表达式“x1+x2+x3”存储在“y”中。

syms x1 x2 x3
y = 0;

for i = 1:3
y = y + xi;
end

代码不起作用,因为在每次迭代中,Matlab 读取“y = y + xi”并返回错误“xi is undefined”,而不是读取“y = y + x1”、“y = y + x2”和“y = y + x3”,这附近有没有?

谢谢。

最佳答案

我建议这样做,前提是您可以稍微不同地创建编号符号变量:

x = sym('x',[1 3]);  % or: syms x1 x2 x3; x = [x1 x2 x3];
y = x(1);
for i = 2:numel(x)
y = y+x(i);
end

当然,在这个简单的示例中,整个 for 循环和其他所有内容都可以替换为:

y = sum(sym('x',[1 3]));

请参阅 sym 上的文档了解更多详情。

编辑:请注意,正如@pm89 指出的那样,通过分配 1×3 符号向量 x,您当然无法直接访问工作区中的符号变量 x1x2x3,但必须如图所示对它们进行索引。这类似于使用数组或单元格,并且具有许多与我的第二个矢量化示例所示相同的好处。

关于matlab - 如何在 Matlab 的循环中自动调用符号变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17349700/

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