gpt4 book ai didi

matlab - 如何在matlab中编辑单元格数组

转载 作者:太空宇宙 更新时间:2023-11-03 20:19:18 27 4
gpt4 key购买 nike

我有这个单元格数组,它来自生成杜威 ID 的 mat 实验室代码:

 POT1 = 

'a0' [] [] []
'a0' 'c0' [] []
'a0' 'b0' [] []
'a0' 'c1' [] []
'a0' 'd0' [] []
'a0' 'c0' 'd1' []
'a0' 'b0' 'd2' []
'a0' 'd0' 'd3' []
'a0' 'd0' 'c2' []
'a0' 'd0' 'b1' []
'a0' 'd0' 'd4' []
'a0' 'c1' 'c3' []
'a0' 'c1' 'b2' []
'a0' 'c1' 'c3' 'd5'
'a0' 'c1' 'b2' 'd6'
'a0' 'd0' 'b1' 'd7'
'a0' 'd0' 'c2' 'd8'

请注意,第 1 列是第 2 列的父级,第 2 列是第 3 列的父级......等等

所以我想构建一个代码,给出每个单元格的全名如下:

POT1 =

  a0      []       []          []
a0 a0.c0 [] []
a0 a0.b0 [] []
a0 a0.c1 [] []
a0 a0.d0 [] []
a0 a0.c0 a0.c0.d1 []
a0 a0.b0 a0.b0.d2 []
a0 a0.d0 a0.d0.d3 []
a0 a0.d0 a0.d0.c2 []
a0 a0.d0 a0.d0.b1 []
.
.
.
.

我构建的代码不完整并给我:“索引超出矩阵维度”错误:

for i=1:length(POT1)
for j=3:size(POT1,2)
if ~isempty(POT1{i,j})
POT1{i,j}=[POT1{i,j-2} POT1{i,j-1} POT1{i,j}];
end
end
end
POT1

最佳答案

我认为您走在正确的轨道上,但如果逐列处理它会更容易。这样,您只需为每个条目回头查看一列:

for jj=2:size(POT1,2)
for ii=1:size(POT1,1)
if ~isempty(POT1{ii,jj})
POT1{ii,jj}=[POT1{ii,jj-1} '.' POT1{ii,jj}];
end
end
end

顺便说一句:length返回向量长度或最大数组维数,所以下次最好使用size

关于matlab - 如何在matlab中编辑单元格数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13270356/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com