matlab中散点图误差的求解
以下是我正在编写的代码的一部分matlab中散点图误差的求解,matlab,matrix,scatter,Matlab,Matrix,Scatter,以下是我正在编写的代码的一部分 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 c
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相同……但它仍然显示出这样的错误您正在输入4个参数:scatter(x,y,S,C)
。您的错误状态为:
C
必须是单色、与X
长度相同的向量或M-X-3矩阵
这意味着第四个参数g1
与第一个参数的维度不同
这里可能发生的情况是,在循环之前没有重新初始化g1
,因此它保留了以前的大小。在-循环的之前放置以下行:
g1 = zeros(size(k31));
它应该能工作。什么是x
和y
?您的问题是x
和y
的长度不正确,或者k31
的长度不正确。请删除分散的,5,g1
部分。首先检查它是否有效。@RohanChakrabarty,你用其他参数做什么?您需要点的可变颜色?g1大小为575139x1 X=3x1 X=99935x1 k31=99934x1。但我不明白g1为什么会有这样的问题dimensions@RohanChakrabarty这里有点不对劲。请将准确的输出发布到这些命令:length(k31)
,size(X)
(在循环内部),size(A)
(在循环内部)和size(g1)
(在循环内部)?xsize=3by1 Asize=2by3 g1size=575139g1随着15282….15282..15283..15283..15284..15284的增长,依此类推。而长度(k31)给出99934@RohanChakrabarty好啊我认为您只是没有正确初始化g1
。请在**循环前面加上一行g1=0(大小(k))
**并使用scatter
,就像你在问题中通常使用的那样。