【发布时间】:2014-09-30 07:15:13
【问题描述】:
我试图在 Matlab 中最小化 sum((A-r*B).^2),其中 A 和 B 是矩阵,r 是我正在处理的标量。我尝试了以下代码:
f = @(r) sum((A-r*B).^2);
Answer = fminbnd(f,lowrange,highrange);
但我得到一个错误。
【问题讨论】:
-
您遇到了什么错误?
-
|| 的操作数和 && 运算符必须可转换为逻辑标量值。 fminbnd (line314) 中的错误 - if ( (fu
-
您能否给出一个可运行的小示例来显示此错误。对
A和B使用随机5x5 矩阵,并在0 到10 之间最小化,我得到了一个不同的错误,因为您的目标函数没有返回标量。 -
@David - 你是对的。看起来 OP 正在尝试最小化平方差的总和,但是将
sum的输入作为矩阵,这将返回每列的行和数组。 OP 需要将其与另一个sum包装以使其正常工作,因为fminbnd需要一个输出单个值的函数。不错的收获!
标签: matlab matrix minimization