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.

 채택된 답변

Star Strider
Star Strider 2020년 8월 26일

0 개 추천

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

Sara Boznik
Sara Boznik 2020년 8월 26일
Thank you so much, that works.
Star Strider
Star Strider 2020년 8월 26일
As always, my pleasure!
A better option would be str2double rather than str2num. I thought of that later. (The result would not change.)

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

태그

질문:

2020년 8월 26일

댓글:

2020년 8월 26일

Community Treasure Hunt

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

Start Hunting!

Translated by