【发布时间】:2014-02-07 22:14:05
【问题描述】:
试图找到一种方法来调用 GNU Octave 中矩阵中每个项目的自定义函数中使用的幂函数 ( ^ )。
我是一个初学者,我想这很简单,但我无法让它工作。
代码如下所示:
function result = the_function(the_val)
result = (the_val - 5) ^ 2
endfunction
我试过这样称呼它:
>> A = [1,2,3];
>> the_function(A);
>> arrayfun(@the_function, A);
>> A .@the_function 2;
这些都不起作用(我认为最后一个根本不正确的语法),抛出错误:
error: for A^b, A must be a square matrix
我猜,这意味着它试图平方 矩阵,而不是其中的元素。
我应该怎么做?
非常感谢!
【问题讨论】:
-
你不能用
A.^b吗?这在 Matlab 中有效 -
这实际上是我措辞中的一个错误。如果您注意到,我首先需要从元素中减去 5,然后 然后 取幂。否则,这将是一个很好的解决方案。很抱歉混淆了:S.
标签: matlab matrix octave linear-algebra exponentiation