如何搜索和提取特定的字符串和数据从文件和写入新的变量?

7视图(30天)
我有这样的数据包含很多不同的值
大部分变量NW = 0.197 e + 10 QW = 0.302 e 03 QWA = 0.931 e-07
QSO2 = 0.000 e + 00 QO3 = 0.000 e + 00 QH2O2 = 0.000 e + 00 QCO2 = 0.000 e + 00 QNH3 = 0.000 e + 00 QSO4 = 0.000 e + e + 00 00 QHMO3 = 0.000 pH = 0.594 e + 01 行为= 0.239 e-01
我想搜索 pH = * * * * * * 在每一行,从文件和写提取到一个新变量(资料片)。
你可以在附加文件中找到示例文件。

接受的答案

Jeevan Kumar Bodaballa
Jeevan Kumar Bodaballa 2020年11月3日
我发现情况
我是后现代意蕴示例文件也是为了更好的理解
清晰的
fid = fopen (“f20_CHEMISTRY.TXT”,“r”);
data = textscan (fid检测器,' % s ');
文件关闭(fid);
Str =字符串(数据{:});
%这个循环的pH值
%检查数字(33 - 1484在我的例子中)
% str数组从你想要改变的地方
%以下循环将提取的价值和编写新的数组
y = 1;
j = 33:1484:长度(Str)
f20_pH (y) = Str (j:);
y = y + 1;
结束
f20_pH = str2double (f20_pH);
保存(“f20_pH_con.mat”,“f20_pH”)

答案(1)

Anmol Dhiman
Anmol Dhiman 2020年9月10日
嗨Jeevan,
您可以按照下面的方法
fid = fopen (“pH.txt”);%打开文件
line_ex = fgetl (fid);%读一行
newStr =分裂(line_ex);%将基于组成空间。它让一个细胞数组
indexOfPH =找到(包含(newStr“pH =”));搜索如果任何元素的百分比与pH =的数学
newVariable = newStr {indexOfPH + 1};%的值存储在一个变量
%读取下一行
line_ex = fgetl (fid);
你需要写在一个循环中。
问候,
Anmol Dmiman
1评论
Jeevan Kumar Bodaballa
Jeevan Kumar Bodaballa 2020年9月26日
编辑:Jeevan Kumar Bodaballa 2020年9月26日
抱歉迟到的回答
我按照你写的脚本,但我得到误差在5日线
'无法执行任务0元素右边。”
也请建议循环。

登录置评。

类别

找到更多的在字符和字符串帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!