2012-11-08 55 views
-1

以下散點圖錯誤是我寫的代碼的一部分,如何解決在MATLAB

for ii=1:length(k31) 

B = [k31(ii);k32(ii)]; 

X=abs(pinv(A)*B); 

g1(ii)=X(1,:); 

g2(ii)=X(2,:); 

g3(ii)=X(3,:); 

end 

scatter(x(1:end-1), y(1:end-1), 5, g1); 

但我不能繪製數據,錯誤如下

??? Error using ==> scatter at 79 

C must be a single color, a vector the same length as X, or an M-by-3 matrix. 

x和y與k31具有相同的尺寸...但仍然顯示這樣的錯誤

+0

什麼是'x'和'y'?你的問題是,'x'和'y'不是正確的長度,或者'k31'不是。 – Isaac

+1

刪除',5,g1'部分。檢查它是否首先工作。 – Acorbe

+0

@RohanChakrabarty,你用什麼其他參數?你想要點變量顏色? – Acorbe

回答

1

您正在餵食scatter,其中有4個參數:scatter(X, Y, S, C)。你的錯誤狀態:

C必須是單一的顏色,一個矢量的長度相同X,或M-3矩陣。

這意味着第四個參數g1的尺寸與第一個參數不一樣。

這裏可能發生的情況是,您沒有在循環前重新初始化g1,因此它保留了以前的大小。把下面一行放在for -loop:

g1 = zeros(size(k31)); 

它應該工作。

+0

g1大小其575139x1 X = 3x1 x = 99935x1 k31 = 99934x1。但我無法理解爲什麼g1有這樣的尺寸 –

+0

@RohanChakrabarty這裏有什麼問題。請將確切的輸出發佈到這些命令中:'length(k31)','size(X)'(循環內部),'size(A)'(循環內部)和'size(g1)'(循環內部) )? –

+0

xsize = 3by1 Asize = 2by3 g1size = 575139 –