在Matlab中搜索并替换文本文件多行中的特定字符串

时间:2018-09-04 06:48:49

标签: matlab file text

我有一个文本文件,我想在每一行中搜索数字255以将其替换为数字0。要注意,数字以字符串形式写入文本文件中。我想跳过前13行,因为这13行中有文字。

文本文件的一部分如下所示:

F2G_DIM 3
F2G_VERSION 1
F2G_LOCATION 0 0 0.5
F2G_ROTATION 0
F2G_ORIGIN 0 0 0
F2G_NB_NODES 300 150 50
F2G_LAGS 10 10 1
F2G_ORDER +Y +X +Z
F2G_NB_VARIABLES 1
F2G_VARIABLE_1 Facies
F2G_UNDEFINED_1 255
F2G_VALUES 
2
1
2
255
2
255
2
2
5
9

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

对于第一个问题,您可以使用逻辑索引来查找和替换255

pattern = 255; %Number to find
array = randi(10,10,1); %Some array
array([4,8,9]) = 255;

array(array==pattern) = 0; %Substitute values

对于第二个问题,您可以使用dlmread加载数据。它允许您指定要忽略的标题。

data = dlmread('file.csv',' ',13,0); 

其中13是要忽略的行数,而0是要忽略的列数。

总共您有类似的东西:

pattern = 255; %Pattern
data = dlmread('file.csv',' ',13,0); %Load
data(data==pattern) = 0; %Substitute values