Matlab 有效地绘制不同个体大小的标记

Matlab 有效地绘制不同个体大小的标记,matlab,plot,matlab-figure,Matlab,Plot,Matlab Figure,该函数允许我们以恒定的大小绘制所有标记s figure; x = -10 : 10; y = x .^ 2; s = 10; plot(x, y, 'bo', 'MarkerSize', s); 假设我们希望每个标记都有一些单独的大小sx。例如,sx=abs(x)+1 实现这一点的一种方法是使用for循环 figure; x = -10 : 10; y = x .^ 2; sx = abs(x) + 1; hold on; for i = 1 : length(x) plot(x(i

该函数允许我们以恒定的大小绘制所有标记
s

figure;
x = -10 : 10;
y = x .^ 2;
s = 10;
plot(x, y, 'bo', 'MarkerSize', s);
假设我们希望每个标记都有一些单独的大小
sx
。例如,
sx=abs(x)+1

实现这一点的一种方法是使用for循环

figure;
x = -10 : 10;
y = x .^ 2;
sx = abs(x) + 1;

hold on;
for i = 1 : length(x)
    plot(x(i), y(i), 'bo', 'MarkerSize', sx(i));
end
这对于少量的
x
来说已经足够好了。但是,如果
x
更大怎么办?例如,
x=-100:0.01:100

现在这需要更长的时间,而
绘图(x,y,'bo','MarkerSize',100)
仍然几乎可以立即完成。理想情况下,我们可以做一些事情,比如
绘图(x,y,'bo',MarkerSize',sx)
其中
sx
是一个大小向量,其中
sx
中的每个条目对应于
x
y
中的一个条目。不幸的是,这将导致
值错误,而不是数值标量错误


是否有一种有效的方法来绘制每个标记具有不同大小的标记?

您尝试使用而不是
绘制标记,如下所示:

scatter(x,y,abs(x)+1)

您尝试执行的操作可以使用而不是
绘图
,如下所示:

scatter(x,y,abs(x)+1)