Использование importdata в Matlab fora файл с разделителями табуляции, содержащий текст

#matlab #import

#matlab #импорт

Вопрос:

Я знаю, что существуют различные способы импорта данных из текстового файла, но я не уверен, какой из них является более простым. Я попытался использовать данные импорта, но столкнулся с проблемой.

Данные выглядят следующим образом:

 Track File : C:TaslImg0000059.TRK
-----------------------------------

       X       Y    PHI  RANGE    DIP    MAJ     MIN      XT      ZT      M2
   192.7    30.0  286.2    0.0    0.0   5.60    4.42    6.59  108.50    1.32 
    73.4   689.2  210.8    0.0    0.0  34.61   29.20   34.61* 108.50    2.31*
    26.2   475.1   80.4    0.0    0.0   5.66    5.14    5.03* 108.50    0.44*
    43.3   674.3   61.7    0.0    0.0  18.95   10.85   27.42  108.50    2.16...
  

Кажется, это работает, но когда я смотрю на часть данных выходной структуры, она содержит только строки до (и включая первую, которая содержит *. Он также показывает эти значения как NaN.

Есть ли способ заставить Matlab игнорировать эти *, или есть лучший подход к импорту этих данных?

Спасибо

Комментарии:

1. Предварительная обработка ( поиск и замена и т. Д.) Файла для удаления всех * перед импортом?

2. Это быстрое решение для небольшого количества файлов, спасибо!

Ответ №1:

В итоге я сделал это:

 fidInFile = fopen(filename,'r');            %# Open input file for reading
fidOutFile = fopen([filename '_nostars'],'w');  %# Open output file for writing
nextLine = fgets(fidInFile);                %# Get the first line of input
while nextLine >= 0                         %# Loop until getting -1 (end of file)
  nextLine = strrep(nextLine,'*','');  %# Replace wordA with wordB
  fprintf(fidOutFile,'%s',nextLine);        %# Write the line to the output file
  nextLine = fgets(fidInFile);              %# Get the next line of input
end
fclose(fidInFile);                          %# Close the input file
fclose(fidOutFile);                         %# Close the output file
  

Затем я использовал ‘importdata’ для нового файла. Затем я мог бы запустить это для сотен файлов, а не вручную просматривать каждый из них и использовать find и replace.