我已經制作了這個腳本來計算給定數據集的頻率,但是matlab不夠精確,是否有可能讓matlab讀取更精確的數字並且不切斷數字?現在我想它使用8個位數(0.12345678),而不是4(0.1234),這是不Matlab讀取精度更高的數字
fid = fopen('forceCoeffs.dat','rt');
A = textscan(fid, '%f%f%f%f%f%f', 'HeaderLines',9,'Collect', 9);
A = A{1};
fclose(fid);
t = A(:,1);
Fs = 1/(A(1,1));
x = A(:,2)
x = detrend(x,0);
xdft = fft(x);
freq = 0:Fs/length(x):Fs/2;
xdft = xdft(1:length(x)/2+1);
plot(freq,abs(xdft));
[~,I] = max(abs(xdft));
fprintf('Maximum occurs at %d Hz.\n',freq(I));
文件:https://drive.google.com/file/d/0B9CEsYCSSZUSb1JmcHRkbFdWYUU/view?usp=sharing
['格式long'](https://www.mathworks.com/help/matlab/ref/format.html)? –
MATLAB使用浮點數。它不是四捨五入的。如果您只有四位數字的精度,那麼要麼是文件中的所有內容,要麼是錯誤地讀取文件。確保你不只是看着控制檯上打印的內容,因爲MATLAB可以讓這些內容更容易閱讀。 – nalyd88