我有一个文本文件,我想在每一行中搜索数字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
我该如何解决这个问题?
答案 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