Azzera filtri
Azzera filtri

How do I import a txt file with the white spaces

46 visualizzazioni (ultimi 30 giorni)
I have to edit a .22 file and change one of the columns. It is pretty much a text file with a matrix. It is parsed with a comma as a delimiter. However I want to retrieve the values in between the commas while maintaining the white space between the commas. So when I export the matrix after I've changed it, it will be the exact same with one changed column.
  3 Commenti
Roshen Jegajeevan
Roshen Jegajeevan il 2 Mar 2021
A = importdata('fort.22');
B = A.textdata;
Z = B{1,6};
X = str2double(Z);
hours = B(:,6);
hoursMat = str2double(hours);
hoursChg = hoursMat - X;
hoursCell = num2cell(hoursChg);
A.textdata(:,6) = hoursCell;
exten = num2cell(A.data);
Final = [A.textdata, exten];
I basically subtracted row 6 by a constant. I used that import function. However it imports it without the white spaces. THe reason I also had to concat A.textdata and exten is bc when I imported using this method, It split it into two different cells in a struct called A.data and A.textdata. Im trying to find a way to import so that I get everything between the comma in the file as one array. For example:
data set looks like this:
OFCL, 27, 192N, 855W, (this format in notepad)
OFCL, 22, 192N, 855W,
OFCL, 21, 192N, 855W,
I want to get it so I can get a cell with each element above between the commas. So the middle would be { 27} and not just {27} (no space before number). Is there any way to do this? It would also allow me to import the array as a whole and not connect the two peices that I got from importData (one struct --> two cells).
Walter Roberson
Walter Roberson il 2 Mar 2021
A = readlines('fort.22');
Now A{6} would be the 6th line, and you could use text processing on it in any way you like, including extracting from fixed character positions, calculating something, and replacing those fixed character positions using a careful format.
However... when I look at your code, it looks more likely that you want to change column 6, rather than row 6. It does not make a lot of difference though.

Accedi per commentare.

Risposte (1)

Meg Noah
Meg Noah il 2 Apr 2021
Modificato: Meg Noah il 2 Apr 2021
This seems to work if you don't mind working with a table
readtable('file22.txt','whitespace','','delimiter',',')

Categorie

Scopri di più su Cell Arrays in Help Center e File Exchange

Tag

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by