【问题标题】:how to solve scatterplot error in matlab如何解决matlab中的散点图错误
【发布时间】:2025-12-18 15:20:05
【问题描述】:

以下是我正在编写的代码的一部分,

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 相同...但仍然显示这样的错误

【问题讨论】:

  • xy 是什么?您的问题是xy 的长度不正确,或者k31 的长度不正确。
  • 删除分散的, 5, g1 部分。首先检查它是否有效。
  • @RohanChakrabarty,你用其他参数做什么?你想要点的可变颜色?

标签: matlab matrix scatter


【解决方案1】:

您正在使用 4 个参数提供 scatterscatter(X, Y, S, C)。您的错误状态:

C 必须是单色、与X 长度相同的向量或 M×3 矩阵。

表示第四个参数g1 的维度与第一个参数不同。

这里可能发生的情况是您没有在循环之前重新初始化g1,因此它保留了之前的大小。将以下行放在for-loop 之前:

g1 = zeros(size(k31));

它应该可以工作。

【讨论】:

  • g1 大小为 575139x1 X=3x1 x=99935x1 k31=99934x1。但我不明白为什么 g1 有这样的尺寸
  • @RohanChakrabarty 这里有问题。请将确切的输出发布到这些命令:length(k31)size(X)(循环内)、size(A)(循环内)和size(g1)(循环内)?
  • xsize =3by1 Asize =2by3 g1size =575139
  • g1 增长为 15282..15282..15283..15283...15284..15284 等等。而 length(k31) 给出 99934
  • @RohanChakrabarty 好的。我认为您只是没有正确初始化g1。请将g1 = zeros(size(k)) **放在循环之前,并像通常在问题中使用的那样使用scatter
最近更新 更多