matrix manipulation
1 回表示 (過去 30 日間)
古いコメントを表示
how to take matrix element (i.e row) one by one and save each new matrices in a new variable example:
original matrix: a=[2 6 7 8;4 5 3 7;9 7 6 9;5 3 1 9]
become: a1=[4 5 3 7;9 7 6 9;5 3 1 9] a2=[2 6 7 8;9 7 6 9;5 3 1 9] a3=[2 6 7 8;4 5 3 7;5 3 1 9] a4=[2 6 7 8;4 5 3 7;9 7 6 9]
0 件のコメント
採用された回答
Andrei Bobrov
2012 年 2 月 2 日
a=[2 6 7 8;4 5 3 7;9 7 6 9;5 3 1 9]
id = ~eye(size(a));
h = arrayfun(@(i1)a(id(:,i1),:),1:size(id,2),'un',0);
[out,idxout] = min(cellfun(@(x)det(x*x.'),h))
OR
a=[2 6 7 8;4 5 3 7;9 7 6 9;5 3 1 9]
id = ~eye(size(a));
s = size(a,2);
h = zeros(s*[1 1 1] - [1 0 0]);
kt = zeros(s,1);
for j1 = 1:s
k = a(id(:,j1),:);
kt(j1) = det(k*k.');
h(:,:,j1) = k;
end
[out,outidx] = min(kt)
その他の回答 (2 件)
Sean de Wolski
2012 年 2 月 1 日
Don't do it. That is all.
If you explain your end goal to us we can help you find a better way.
4 件のコメント
eri
2012 年 2 月 2 日
1 件のコメント
Sean de Wolski
2012 年 2 月 2 日
What does:
which -all arrayfun
return? And what is the output from:
ver
at the command line?
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!