【发布时间】:2014-12-13 17:07:30
【问题描述】:
我想解决这个问题很久了,但还没有成功。我假设我会使用 arrayfun,但我还想不通。感谢帮助。问题来了:
给定一个多行 N^2 列的矩阵,将每一行重塑为 NxN 矩阵并计算特征值,并以向量化方式执行此操作,而不使用 for 循环。例如
A=
0.6060168 0.8340029 0.0064574 0.7133187
0.6325375 0.0919912 0.5692567 0.7432627
0.8292699 0.5136958 0.4171895 0.2530783
0.7966113 0.1975865 0.6687064 0.3226548
0.0163615 0.2123476 0.9868179 0.1478827
for every **i**
m=reshape(A(i,:),2,2)
[vc vl]=eig(m)
我倾向于做类似的事情
f = @(x) eig(reshape(x,2,2))
arrayfun(f,A)
但我当然会遇到类似
的错误octave:5> arrayfun(f,A)
error: reshape: can't reshape 1x1 array to 2x2 array
error: evaluating argument list element number 1
error: evaluating argument list element number 1
error: called from:
error: at line -1, column -1
error: cellfun: too many output arguments
error: /usr/share/octave/3.2.4/m/general/arrayfun.m at line 168, column 21
【问题讨论】:
标签: octave