Поиск и замена определенной строки в нескольких строках текстового файла в Matlab - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть текстовый файл, в котором я хочу найти число 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 голосов
/ 04 сентября 2018

Для ваших первых вопросов вы можете использовать логическое индексирование, чтобы найти и заменить 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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...