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

时间:2014-08-19 08:15:35

标签: 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))

4 个答案:

答案 0 :(得分:2)

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

data = cell2mat(textscan(fid, '%d'));
data = dlmread('random.txt')

你得到的错误也在最后一行。在Matlab中,您无法以这种方式将双精度转换为字符串。正确的代码是

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

 data = textread('random.txt',%i);
 mean_data = mean(data);
使用

%i是因为您有整数值。如果您有双倍值,请将其更改为%d。

答案 3 :(得分:0)

不是所有的答案。如果您的.txt文件只包含数字,请执行

>> load file.txt  
>> mean(ans)

示例:

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

     0

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

ans =

                      3.75