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