我创建了一个文本文件,其中包含如下的整数值:
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))
答案 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