首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MATLAB中在特定字符串前面更改数字

如何在MATLAB中在特定字符串前面更改数字
EN

Stack Overflow用户
提问于 2013-11-27 12:15:15
回答 1查看 47关注 0票数 0

我有一个输入

代码语言:javascript
复制
start of data

R    34
P    35.12
Pressure Ratio
END

在file1中,我有一个值39,我想在file2中分配给R,我有一个值32.79,我想要分配给P。

作为最后一步,在最后一行结束之前,我要输入半径比。

所以我的输出

代码语言:javascript
复制
R    39
P    32.79
Pressure Ratio
Radius Ratio
END

第1部分在linux中通过

代码语言:javascript
复制
sed '/\<R\>/!d;=;s/.* \([^ ]\+\).*/\1/;R File1.txt' inputFile.txt |
sed 'N;N;s|\n|s/|;s|\n|/|;s|$|/|;q' >temp.sed
sed -i -f temp.sed inputFile.txt
etc

第2部分在linux中通过

代码语言:javascript
复制
sed  -i -e '/*END/i \Radius Ratio ' inputFile.txt

谁能在MATLAB中引领一条更聪明的道路?

问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-27 14:52:37

为什么不直接在MATLAB中使用像字符串替换这样简单的东西,在这里仍然可以使用正则表达式?我知道这不是最优雅的,但它会完成任务的。

代码语言:javascript
复制
text = fileread('someFile.txt');
num = 100;
text = regexprep(text,'R[ ]+[0-9.]+[ ]*',['R ',num2str(num)]);
text = regexprep(text,'P[ ]+[0-9.]+[ ]*',['P ',num2str(num)]);
text = regexprep(text,'END','someString \nEND ')

更新

要将此信息写回同一文件或其他文件名,只需执行以下操作

代码语言:javascript
复制
f = fopen('someFile.txt','w');
fprintf(f,text);
fclose(f);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20242245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档