【发布时间】:2015-01-29 00:12:30
【问题描述】:
我有一个 4 x 3 矩阵('mymatrix')。 myfunc 输入“mymatrix”并输出“result”。我在我的脚本中循环使用 myfunc(17280 次)。因此,每一次,它都会重新定义 syms x y z t。有没有办法在 myfunc 之外获取 'syms x y z t'。每次初始化需要 0.004 秒。
function result = myfunc(mymatrix)
tic
syms x y z t
toc
f = 3*x+5*y-6*z+7;
eqn = subs(f,{x,y,z},{mymatrix(:,1)*t,mymatrix(:,2)*t,mymatrix(:,3)*t});
for ii = 1:4
result(ii,1) = solve(eq(ii))
end
PS:我也尝试过矢量化 for 循环,但未能成功。如果可以的话,我会很高兴的。
【问题讨论】:
-
您说您正在调用此函数
17280次。由于这个函数的输入是mymatrix,我假设矩阵在某种循环中在这些迭代中发生变化。所以,这是我的问题 - 在开始for iterations = 1:17280的循环之前,您是否可以访问所有这些17280数据集? -
另外,是否可以将
result作为数字数组获取,还是绝对需要一个 sym 变量作为输出? -
什么是
class(mymatrix)?是数字还是符号? -
'mymatrix' 是另一个函数的输出,在循环开始之前它是未知的。 'mymatrix' 是数字。
标签: matlab function symbolic-math