0
点赞
收藏
分享

微信扫一扫

matlab中syms空间问题

问题场景及描述:

在matlab中用syms定义一个多维的符号变量后,再利用循环进行赋值时警告未预分配内存。

例如:在求解多元非线性方程组时,需要用syms来创建符号变量来装载方程,当方程组个数可变或可选时,在赋值时也必须与个数相同。
在如下例子中,解释器会产生橙色警告,说‘f’会随迭代数而变化,请预分配内存,但在syms f [1,4]中不是已经分配过了吗?虽然警告并不影响使用,但作为一个被迫强迫症患者,消除警告势在必行。

syms x y
syms f [1,4]

for i = 1:4
    f(i) = x^i+y;
end

在这里插入图片描述

原因分析:

用whos查看内存分配情况
在这里插入图片描述可见f和f1,f2等都是8个字节,说明f和f1,f2,f3,f4并不是一个包含关系,


解决方案:

在这里插入图片描述可见警告消失了。

在这里插入图片描述依旧可行,GG!

举报

相关推荐

0 条评论