Arrays 在Matlab中读取文本文件并计算平均值

Arrays 在Matlab中读取文本文件并计算平均值,arrays,matlab,sum,average,Arrays,Matlab,Sum,Average,我创建了一个包含整数值的文本文件,如下所示: 1 2 3 4 5 56 10 .. and so on 我们的想法是找出这些数字的平均值。我已经完成了以下工作,但出于某种原因,我得到了多个输出: fid = fopen('random.txt', 'r'); data = fscanf(fid, '%i',1 ); fclose(fid); averageValues= 'Average ' + (sum(data)/length(data)) 调用fscanf将只读取文件的第一行。您

我创建了一个包含整数值的文本文件,如下所示:

1
2
3
4
5
56
10
.. and so on
我们的想法是找出这些数字的平均值。我已经完成了以下工作,但出于某种原因,我得到了多个输出:

fid = fopen('random.txt', 'r');

data = fscanf(fid, '%i',1 );

fclose(fid);

averageValues= 'Average ' + (sum(data)/length(data))

调用
fscanf
将只读取文件的第一行。您应该将它放在一个循环中,以便实际阅读每一行,或者简单地使用以下其中一行

data = cell2mat(textscan(fid, '%d'));
data = dlmread('random.txt')
您得到的错误也在最后一行。在Matlab中,不能用这种方式将double转换为字符串。正确的代码是

avg = mean(data);
disp(['Average = ' num2str(avg)]);

您可以在一行代码中读取所有数据:

data=textread('d:\1.txt','%d');
datamean=mean(data)

%之所以使用i,是因为您有整数值。如果您有两个值,请将其更改为%d。

所有答案均为否。如果您的.txt文件只包含数字,只需执行以下操作

>> load file.txt  
>> mean(ans)
例如:

>> system('cat test.txt')
1
4
4
6
ans =

     0

>> load test.txt
>> mean(test)

ans =

                      3.75
>> system('cat test.txt')
1
4
4
6
ans =

     0

>> load test.txt
>> mean(test)

ans =

                      3.75