2016-08-01 66 views
1

當我輸入我的數據(的紐約證券交易所數據數值矩陣),數據加載不正確:MATLAB CSV導入規整數據

我的CSV數據DISP的最後一部分()顯示的應該是 -

9.76,10%,9.99,9.94,9.97,9.944,9.95,10,9.956,10.01

我能得到什麼,當我打電話DISP(importDataResult)是 -

0.0100 0.0099 0.0099 0.0100等。

你有什麼想法,爲什麼當我導入數據完全轉換?下面的鏈接包含我的壓縮CSV文件,所以你可以看到問題(我完全理解,如果你不能檢查這個問題,但我很想知道是否同樣的問題適用於其他人的MATLAB /計算機)。

https://www.sendspace.com/file/slif0y

的代碼我使用的是:

function [ c ] = CreateCov_Test() 
c = csvread('nyse_data_matrix_no_tags.csv'); 
disp(c); 
end 

這是問題的一個截圖: https://s32.postimg.org/os74qfrlx/matlab_screen.png

非常感謝您!

+0

如果你的數據全是數字,那麼'csvread'可能會更好,如果它包含字符串,'textscan'可能會更好 – GameOfThrows

+0

嗨,當我做CSVread時,同樣的問題仍然存在 - 數學矩陣太大而無法處理?我試過使用'導入數據'按鈕,importdata()函數和現在的csvread()函數。當我導入數據時,它們都會對數據進行轉換 - 代碼非常簡單,我不明白可能會出錯。 謝謝嘗試! :) – lel23

+0

確保在顯示的文本結果前面沒有「1.00e + 03」或類似的東西。這只是Matlab使'格式短'輸出適合的東西。 – Matt

回答

0

Matlab不轉換任何數據。 Matlab正在顯示變量的配置由format控制,默認值爲format short

從文檔的摘錄:

格式可用於如下所有浮動變量的不同的輸出的顯示格式之間進行切換:

格式SHORT縮放定點格式以5個數字。

那麼,是什麼5個位數縮放的定點格式的意思是,好讓我們看看

>> a = [0.1 10000 100] 
>> disp(a) 
    1.0e+04 * 

    0.0000 1.0000 0.1000 

注意1.0e+04 *,其在矩陣中的所有數據的乘數。當顯示一個大矩陣時,這個乘數通常是隱藏的(就像你的情況一樣),這當然可能會讓人感到困惑。

+0

嗨Jorgen,謝謝你的回答!我現在明白你的意思了,當輸出大於輸出空間時,乘法器是隱藏的。所以如果我要將結果導出到CSV,數字將恢復正常?不幸的是,我今天免費試用了MATLAB,所以我必須等到我上大學才能得到這個CSV(這很煩人,因爲我需要用結果編寫java投資算法)......無論如何謝謝你你的時間! – lel23