Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用MATLAB';s符号工具箱_Matlab_Symbolic Math - Fatal编程技术网

用MATLAB';s符号工具箱

用MATLAB';s符号工具箱,matlab,symbolic-math,Matlab,Symbolic Math,我有一个函数F,它是n个变量中函数的向量。例如,考虑以下内容: syms x y z f(f1,f2,f3) f1(x,y,z) f2(x,y,z) f3(x,y,z) X0 = [1 0 1 0]'; f1(x,y,z) = x+y+2; f2(x,y,z) = w-5*x+z^2-4; f3(x,y,z) = 2*x+y^2-z-12; F = vertcat(f1, f2, f3) X = [1 2 3]'; 这里,F是三个变量中三个函数的向量。在我考虑的情况下,我想把F

我有一个函数F,它是n个变量中函数的向量。例如,考虑以下内容:

syms x y z f(f1,f2,f3) f1(x,y,z) f2(x,y,z) f3(x,y,z)

X0 = [1 0 1 0]';

f1(x,y,z) =  x+y+2;
f2(x,y,z) =  w-5*x+z^2-4;
f3(x,y,z) =  2*x+y^2-z-12;


F = vertcat(f1, f2, f3)
X = [1 2 3]';
这里,F是三个变量中三个函数的向量。在我考虑的情况下,我想把F看成n个变量中的n个方程

我想取一个标量向量,长度为F,如下所示:

syms x y z f(f1,f2,f3) f1(x,y,z) f2(x,y,z) f3(x,y,z)

X0 = [1 0 1 0]';

f1(x,y,z) =  x+y+2;
f2(x,y,z) =  w-5*x+z^2-4;
f3(x,y,z) =  2*x+y^2-z-12;


F = vertcat(f1, f2, f3)
X = [1 2 3]';
在这个向量上求F。比如:

F(X(1),X(2),X(3))
然而,我需要一种不知道n的方式来写它。我可以通过写作找到n

dims = size(X);

但是这并不能解决我如何在X参数化计算F的问题。有没有办法做到这一点呢?

如果你不介意使用单元格而不是数组,你可以用
X=[1 2 3]'
替换
X={1 2 3}
(不需要转置)和
F(X(1),X(2),X(3))
替换
F(X:})

您在这里使用符号数学的具体原因是什么?你举的例子并不需要它。使用普通的数字语法会简单得多。我将研究这个解决方案,并让您知道它是如何运行的。谢谢它起作用了!我还必须定义一个数值数组x来存储x在我的大问题中所包含的迭代解,但是这个解决方案允许索引工作。谢谢你的帮助。