如何从单元格数组中提取数据

8次观看(过去30天)
PelayoVázquezRodríguez.
PelayoVázquezRodríguez. 于2020年5月13日
评论: 斯蒂芬Cobeldick. 于2020年5月14日
嗨,
我是一名航空工程师,
我已经通过“FGETL”功能从文本文件中读取了此4x1单元格数组。此代码包含有关热敏密码的两个节点(B10和D22)的信息:
%%%%%%
b10 ='cryos',t = t_caja_top,
A = 0.916088,ALP = 1.000000,EPS = 0.850000,
外汇= -0.270000,fy = 0.000000, fz = 0.000000;
d22 ='加热器线1',t = t_ini,qi = pjoule;
%%%%%%
因此,我想为所有信息进行外,并创建一个名为“节点”的钻头“结构”变量。例子:
节点B10,Atributes:名称:'Cryos',温度= T_CAJA_TOP,面积= 0,916088 ...
节点D22,Atributes:名称:'加热线1',温度= T_INI ....
任何帮助都非常欢迎。
考虑一下,节点之间的分隔符是:';'
非常感谢,
PelayoVázquezRodríguez.
2评论
PelayoVázquezRodríguez.
PelayoVázquezRodríguez. 于2020年5月13日
不。我已经检查过了。
这并不容易。数据名称和值在同一单元格中混合

登录评论。

接受答案

斯蒂芬Cobeldick.
斯蒂芬Cobeldick. 于2020年5月13日
编辑:斯蒂芬Cobeldick. 于2020年5月13日
因为您没有上传样本文件,我根据您的示例数据创建一个(附加)。
str = fileread('trial.txt');%将整个文件读为一个字符串
spl = regexp (str,'\ w + [^;] +''匹配');%分裂节点
tkn = regexp(spl,'(\ w +)\ s * = \ s *([^,] +)''令牌');%识别键=值对
num = numel(tkn);
out = struct();
为了k = 1:num
tmp = tkn {k};
TMP = STRREP(VertCAT(TMP {:})。',”“'');
vec = str2double(tmp(2,:));%可选:转换为数字
idx =〜isnan(vec);%可选:转换为数字
TMP(2,IDX)= NUM​​2CELL(VEC(IDX));%可选:转换为数字
出来。(tmp {1,1})= struct('名称',TMP {2,1},TMP {:,2:结束};
结尾
给出包含具有不同字段的嵌套标量结构的标量结构:
>> out.
了=
B10:[1x1结构]
D22摊位(1 x1结构):
>> Out.B10.
ans =.
名称:'冷冻'
T:“T_caja_top”
答:0.91609
alp:1
EPS:0.85
FX:-0.27
FY:0
FZ:0
>> OUT.D22.
ans =.
名称:'加热器线1'
T:'t_ini'
齐:“PJoule”
3评论
斯蒂芬Cobeldick.
斯蒂芬Cobeldick. 于2020年5月14日
试试这些, C 是单元格数组:
[C{:}]
Sprintf(' % s ',C{:})
加入(C)

登录评论。

更多答案(0)

下载188bet金宝搏

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!