我想写一个匿名函数,以矢量theta
作为输入,并计算theta
的前半部分第四平方的总和:
L=@(theta) sum(theta.^4(1:length(theta)/2))
但Matlab报告错误
??? Error: File: c2n9.m Line: 3 Column: 27
Unbalanced or unexpected parenthesis or bracket.
我发现错误与以下更简单的示例相同
>> a=ones(1,4)
a =
1 1 1 1
>> a.^4(1:2)
??? a.^4(1:2)
|
Error: Unbalanced or unexpected parenthesis or bracket.
>> (a.^4)(1:2)
??? (a.^4)(1:2)
|
Error: Unbalanced or unexpected parenthesis or bracket.
我想知道如何使这个简单的例子和匿名函数一起工作?
谢谢!
答案 0 :(得分:1)
你可以改为
a(1:2).^4
答案 1 :(得分:1)
你应该在每个元素提升到幂之前进行索引
而不是:
L=@(theta) sum(theta.^4(1:length(theta)/2))
试
L=@(theta) sum(theta(1:round(length(theta)/2)).^4)
请注意,我还添加了一个回合来处理θ的长度为奇数
的情况答案 2 :(得分:0)
呃,你不是错过了第一个错误信息指向的地方的乘法符号吗?或其他什么?