Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 沿着3D矩阵的每个维度获取索引_Matlab_Matrix - Fatal编程技术网

Matlab 沿着3D矩阵的每个维度获取索引

Matlab 沿着3D矩阵的每个维度获取索引,matlab,matrix,Matlab,Matrix,有没有一种更简洁的方法来获取3D矩阵中每个维度的索引?这是我的解决方案,但我不喜欢它重复并占用三行 rows = 1:size(vol,1); cols = 1:size(vol,2); slices = 1:size(vol,3); 你有各种各样的选择,但并不比你所拥有的更简单 % example volumen vol = flow(10); % Option 1 [rows cols slices] = deal( 1:size(vol,1), 1:size(vol,2), 1

有没有一种更简洁的方法来获取3D矩阵中每个维度的索引?这是我的解决方案,但我不喜欢它重复并占用三行

rows   = 1:size(vol,1);
cols   = 1:size(vol,2);
slices = 1:size(vol,3);

你有各种各样的选择,但并不比你所拥有的更简单

% 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) )

第一个选项返回三个单个向量,后两个选项返回一个单元格数组,每个单元格中的每个维度都有一个向量。

您有各种选项,但并不比您所拥有的简单

% 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) )

第一个选项返回三个单个向量,后两个选项返回一个单元格数组,每个单元格中的每个维度都有一个向量。

[rows cols slices]=size(vol);?我想要索引向量。它是
1:size(vol,1)
,而不仅仅是
size(vol,1)
。但我希望有一个解决方案看起来有点像你发布的;?我想要索引向量。它是
1:size(vol,1)
,而不仅仅是
size(vol,1)
。但我希望有一个解决方案,看起来有点像你发布的。太好了,我一直在寻找像
deal
这样的函数很久了!谢谢考虑到矩阵是3D的,选项3可能更简单:
arrayfun(@(x){1:x},size(vol))
Neat,我一直在寻找类似
deal
的函数!谢谢考虑到矩阵是3D的,选项3可能更简单:
arrayfun(@(x){1:x},size(vol))