Indexing high dimension elements from a N-D matrix
1 回表示 (過去 30 日間)
古いコメントを表示
Hi, all,
I met a problem when I was trying to index the third dimension elements of a 3-dim matrix, i.e.
A=rand(10,10,10);
B=A(1,1,:);
, I found B was not a vector as I expected, but rather, a 1-by-1-by-10 array. But A(:,1,1) and A(1,:,1) return a column and row vector respectively.
I wonder why MATLAB is designed in this way and how to obtain what I want ?
I know a workaround is use squeeze(A(1,1,:)), which ignores the singleton dimensions. Is there any other more direct way?
Thanks.
1 件のコメント
Matt J
2014 年 5 月 28 日
I wonder why MATLAB is designed in this way
As you already pointed out, A(:,1,1) and A(1,:,1) are not the same shape and have singleton dimensions where you provided singleton subscripts. If that makes sense to you, why should A(1,1,:) obey a different rule?
採用された回答
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Matrices and Arrays についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!