gpt4 book ai didi

linux - 如何更改 MATLAB 中特定字符串前面的数字

转载 作者:太空宇宙 更新时间:2023-11-04 04:08:18 24 4
gpt4 key购买 nike

我有一个输入,例如

start of data

R 34
P 35.12
Pressure Ratio
END

在 file1 中,我有单个值 39,我想将其分配给 R在 file2 中,我想分配单个值 32.79 P

最后一步,在最后一行END之前,我想输入半径比率

这样我的输出就是

R    39
P 32.79
Pressure Ratio
Radius Ratio
END

第 1 部分在 Linux 中通过以下方式解决

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 中通过以下方式解决

sed  -i -e '/*END/i \Radius Ratio ' inputFile.txt

任何人都可以在 MATLAB 中引领更智能的方式吗?

问候

最佳答案

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

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 ')

更新

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

f = fopen('someFile.txt','w');
fprintf(f,text);
fclose(f);

关于linux - 如何更改 MATLAB 中特定字符串前面的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20242245/

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