预分配嵌套元胞数组matlab
Preallocate nested cell array matlab
在 Matlab 中,我需要帮助来预分配嵌套元胞数组并将其初始化为零。
问题描述:
例如,我有一个数字元胞数组,名为 bn
。该数组应按以下方式预先分配:
bn{1,1} = 0
bn{1,2}{1,1} = 0
bn{1,2}{1,2}{1,1} = 0
bn{1,2}{1,2}{1,2}{1,2} = 0
我还尝试借助图像来描述我的问题,假设我只有三个级别。其实我有三十多岁
或许,使用 for
-loop 可以解决这个问题。但是我没有足够的想象力:-(
所以,请高手帮帮我!
关于这可能不是存储数据的最有效方式的评论中提出了一些有效的观点。但是,假设有特定原因,您可以使用简单的递归函数生成它:
bn = createNode( 1, 3 );
function node = createNode( currentLayer, maxLayer )
if currentLayer == maxLayer
node = {0,0}; % Bottom layer is just {0,0}
else
% Higher layers are {0, {sub-node}}
node = {0, createNode( currentLayer+1, maxLayer )};
end
end
在 Matlab 中,我需要帮助来预分配嵌套元胞数组并将其初始化为零。
问题描述:
例如,我有一个数字元胞数组,名为 bn
。该数组应按以下方式预先分配:
bn{1,1} = 0
bn{1,2}{1,1} = 0
bn{1,2}{1,2}{1,1} = 0
bn{1,2}{1,2}{1,2}{1,2} = 0
我还尝试借助图像来描述我的问题,假设我只有三个级别。其实我有三十多岁
或许,使用 for
-loop 可以解决这个问题。但是我没有足够的想象力:-(
所以,请高手帮帮我!
关于这可能不是存储数据的最有效方式的评论中提出了一些有效的观点。但是,假设有特定原因,您可以使用简单的递归函数生成它:
bn = createNode( 1, 3 );
function node = createNode( currentLayer, maxLayer )
if currentLayer == maxLayer
node = {0,0}; % Bottom layer is just {0,0}
else
% Higher layers are {0, {sub-node}}
node = {0, createNode( currentLayer+1, maxLayer )};
end
end