Data with different length of rows

3 visualizzazioni (ultimi 30 giorni)
Sara Boznik
Sara Boznik il 26 Ago 2020
Commentato: Star Strider il 26 Ago 2020
Hi
I have following question. I have data like this:
1 2 3 4 5 6 7 8 9
1 2 3 4
1 2
I want to calculate average of each row.
I have following code:
row=load('file.txt')
n=length(row(:,1))
[n,m]=size(row)
for i=1:n
avg(i)=mean(row(i,:))
end
Unfornatelly does not work, I got the error:
Unable to read file 'filei.txt'. Input must be a MAT-file or an ASCII file containing numeric data with
same number of columns in each row.
I have no idea what to do, do you have any advice?
Any help is aprriciated.

Risposta accettata

Star Strider
Star Strider il 26 Ago 2020
Try this:
fidi = fopen('file.txt','rt');
k = 1;
while ~feof(fidi)
row = fgetl(fidi);
avg(k,:) = mean(str2num(row));
k = k+1;
end
fclose(fidi);
With:
RowMeans = avg
producing:
RowMeans =
5.0000
2.5000
1.5000
.
  2 Commenti
Sara Boznik
Sara Boznik il 26 Ago 2020
Thank you so much, that works.
Star Strider
Star Strider il 26 Ago 2020
As always, my pleasure!
A better option would be str2double rather than str2num. I thought of that later. (The result would not change.)

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Data Type Conversion 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