【发布时间】:2017-06-30 15:22:14
【问题描述】:
我很难理解这段代码中的错误在哪里:
我有一堆矩阵,我想取出每个矩阵的上三角部分,将其放入向量中,对其进行处理,然后将结果映射回来。代码如下:
%%
n=10;
m=3;
% generate a random 'stack of matrices'
bar=randn(n,n,m);
% index the upper triangular part
inds=triu(true(n,n));
% linearize
bar_lin=permute(bar,[3 1 2]);
bar_lin=bar_lin(:,inds);
% de-linearize
foo=zeros(size(bar,3),n,n);
foo(:,inds)=bar_lin;
foo=permute(foo,[2 3 1]);
% why is this not == 0 ??
sum(foo(:)-bar(:))
我只是不明白为什么这不起作用!谢谢!
【问题讨论】:
-
添加了 matlab 标签 - 希望这有助于找到正确的受众
标签: matlab indexing vectorization