Matlab 从矩阵到数组单元格的值插入问题
我有一个值矩阵,如下所示Matlab 从矩阵到数组单元格的值插入问题,matlab,Matlab,我有一个值矩阵,如下所示 candidate_edges = 10.0000 10.0000 6.0000 155.5000 105.5000 75.5000 25.5000 105.5000 75.5000 295.5000 415.5000 155.5000 185.5000 415.5000 155.5000 185.5000 485.5000 155.5000 195.5000 305.5000 74.5000
candidate_edges =
10.0000 10.0000 6.0000
155.5000 105.5000 75.5000
25.5000 105.5000 75.5000
295.5000 415.5000 155.5000
185.5000 415.5000 155.5000
185.5000 485.5000 155.5000
195.5000 305.5000 74.5000
115.5000 305.5000 74.5000
115.5000 395.5000 74.5000
195.5000 395.5000 74.5000
25.5000 185.5000 75.5000
155.5000 185.5000 75.5000
295.5000 415.5000 5.5000
295.5000 415.5000 155.5000
185.5000 415.5000 155.5000
195.5000 305.5000 5.5000
195.5000 305.5000 74.5000
195.5000 395.5000 74.5000
295.5000 415.5000 5.5000
195.5000 395.5000 5.5000
295.5000 485.5000 5.5000
300.0000 600.0000 0
295.5000 415.5000 155.5000
185.5000 415.5000 155.5000
我想生成一个长度为1:length(候选_边)的数组,并在每个单元格中存储上述矩阵的每一行。下面是我的代码
cnode = zeros(1, n);
cnode = cell(1, n);
for k = 1:length(cnode)
for j = 1:length(candidate_edges)
cnode{k} = candidate_edges(j,:);
end
end
在输出中,我在每个单元格中只得到相同的值。不需要两个循环。e、 g.这样就可以了
cnode = cell(1, size(candidate_edges, 1))
for k = 1:numel(cnode)
cnode{k} = candidate_edges(k,:);
end
您不需要两个循环。e、 g.这样就可以了
cnode = cell(1, size(candidate_edges, 1))
for k = 1:numel(cnode)
cnode{k} = candidate_edges(k,:);
end
您也可以使用内置的MATLAB函数
mat2cell
进行如下操作:
cnode = mat2cell(candidate_edges, ones(1, size(candidate_edges, 1)));
您也可以使用内置的MATLAB函数
mat2cell
进行如下操作:
cnode = mat2cell(candidate_edges, ones(1, size(candidate_edges, 1)));