gpt4 book ai didi

matlab - 解析 '[' : usage might be invalid MATLAB syntax时出错

转载 作者:行者123 更新时间:2023-12-03 08:05:56 26 4
gpt4 key购买 nike

我正在开发一个小的实用程序,可以在MATLAB中计算偏微分方程。
我收到无效语法错误:

函数调用中的Parse error at '[' : usage might be invalid MATLAB syntax,但我不明白为什么:

在我用于main_routine.m的代码下面:

% pde operations ..

% Explicit (nonstiff) integration
if(mf == 1)
[t,u] = ode45(@pde_1, tout, u0, options);
end

%
% Implicit (sparse stiff) integration
if(mf == 2)
S = jpattern_num;
options = odeset(options, 'JPattern', S)
[t,u] = ode15s(@pde_1, tout, u0, options);
end

函数调用 jpattern_num.m,错误为:
function S = jpattern_num
global n

% Set independent, dependent variables for the calculation
% of the sparsity pattern
tbase = 0;
for i=1:n
ybase(i) = 0.5;
end
ybase = ybase';
%
% Compute the corresponding derivative vector
ytbase = pde_1(tbase,ybase);
fac[]; % <-- Error Here but don't know wy
thresh = 1e-16;
vectorized = 'on';
[Jac,fac] = numjac(@pde_1, tbase, ybase, ytbase, thresh, fac, vectorized);
%
% Replace nonzero elements by "1" (so as to create a "0-1" map of the
% Jacobian matrix)
S = spones(sparse(Jac));
%
% Plot the map ….

我到目前为止所做的尝试:

1)我以为这只是一个数组声明问题,但错误仍然存​​在。我查看了 official documentation来仔细检查可能的差异,但找不到错误。

2) This source非常有用,因为用户有一个类似的项目。
我应用了相同的修改:


fac[];

我申请了
fac();

但这并不能解决问题。

3)我进一步研究了问题的可能原因,并发现了 this source,它总是来自官方文档。我应用了建议,但问题仍然存在。

请,如果有人遇到类似问题,请提供有关如何解决该问题的建议,并指导正确的方向。

最佳答案

现在的行没有创建数组。如果要创建一个空数组,请尝试

fac = [];

但是现在的问题是,为什么将一个空数组传递给 numjac?如果将在后一个函数中创建数组,则无需将其作为参数传递。实际上,如果在函数中修改了作为参数传递的数组,则Matlab会创建一个新数组。

关于matlab - 解析 '[' : usage might be invalid MATLAB syntax时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59603550/

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