2014-12-26 76 views
0

我正在學習如何在mldata.org上進行機器學習,並在Youtube上觀看關於如何使用數據的視頻(https://www.youtube.com/watch?v=zY0UhXPy8fM)(2:50)。使用相同的數據,我試圖完全按照他所做的來創建數據集的散點圖。然而,當他使用scatterplot命令時,它完美地在他身邊工作,但我無法用詭計去做。無法在Octave中使用散點圖

任何人都可以解釋什麼是錯的,我該怎麼辦?

octave:2> load banana_data.octave 
octave:3> pkg load communications 
octave:4> whos 
Variables in the current scope: 

    Attr Name  Size      Bytes Class 
    ==== ====  ====      ===== ===== 
     data  2x5300     84800 double 
     label  1x5300     42400 double 

Total is 15900 elements using 127200 bytes 
octave:5> scatterplot(data, label) 
error: scatterplot: real X must be a vector or a 2-column matrix 
error: called from: 
error: /home/anthony/octave/communications-1.2.0/scatterplot.m at line 69, column 7 

回答

1

錯誤消息說明了這一切。您的data2-row matrix,而不是它應該是的2-column matrix。只需與.'轉置。

scatterplot(data.') 

我放棄了label參數,因爲它不與communications工具箱兼容,無論是在matlab或八度。

更新

news('communications')

的繪圖功能eyediagram' and散點圖」提高了Matlab的兼容性

這也許可以解釋爲什麼行爲是不同的。準備好尋找其他故障,因爲本課程使用的倍頻程大約5年。

爲了使用label,您應該使用標準八度scatter函數。 顏色可以通過選擇另一個colormap來改變。

colormap(cool(256)) 
scatter(data(1,:), data(2,:), 6, label, "filled") 

with scatter

+0

謝謝,這似乎得到的數據正確繪製,但是當我嘗試繪製兩個數據和標籤(散點圖(數據「,標籤) ),我得到此錯誤消息:「散點圖:N必須是正整數」 我該如何解決這個問題? – user3377126

+0

@ user3377126回答更新 – ederag

+0

它的工作原理,謝謝! 雖然我很好奇,但是你介意解釋「scatter(data(1,:),data(2,:),6,label,」filled「)」(我對八度有點新)的語法 – user3377126