是否有更简洁的方法来获取3D矩阵的每个维度的索引?这是我的解决方案,但我不喜欢它重复并占用三行。
rows = 1:size(vol,1);
cols = 1:size(vol,2);
slices = 1:size(vol,3);
答案 0 :(得分:4)
你有各种选择,但它并不比你拥有的更简单。
% example volumen
vol = flow(10);
% Option 1
[rows cols slices] = deal( 1:size(vol,1), 1:size(vol,2), 1:size(vol,2) )
% Option 2
indexvectors = cellfun( @(x) 1:size(vol,x), num2cell(1:3), 'uni',0 )
% Option 3
indexvectors = arrayfun( @(x) {1:size(vol,x)}, 1:3)
indexvectors = arrayfun( @(x) {1:x}, size(vol) )
第一个返回三个单向量,后两个选项返回一个单元格数组,每个单元格中的每个维度都有一个向量。