使用" gmres"时无输出在Matlab中

时间:2017-05-18 16:03:32

标签: matlab

我想解决Ax = b+u类型的线性等式系统,其中Ab是已知的。我在MATLAB中使用了这样一个函数:

x = @(u) gmres(A,b+u);

然后我使用了fmincon,其中u的值被赋予此表达式,并计算x。例如

J = @(u) (x(u)' * x(u) - x^*)^2

[J^*,u] = fmincon(J,...);

将点作为矩阵和向量的平等和不等式。 我的问题是,MATLAB总是提供一个输出,其中包含有关命令gmres的信息。但我不知道,我怎么能阻止它(它使程序更慢)。

我希望你知道答案。 Patsch

1 个答案:

答案 0 :(得分:0)

它在文档中有点隐藏,但是it does say

  

如果指定了flag输出,则不会显示任何消息。

所以你需要用至少两个输出来调用gmres。您可以通过创建包装函数

来完成此操作
function x = gmresnomsg(varargin)
    [x,~] = gmres(varargin{:});
end

并将其用于创建句柄

x = @(u) gmresnomsg(A,b+u);