matlab中绘制曲线时,怎样设置符号例如圆圈的距离呢

2024-12-20 11:11:54
推荐回答(4个)
回答1:

找了好久发现,在这里表述一下

以上图为例,

选中要稀疏的曲线

比如下面的输入部分,我输入1:5:50;50表示我开始画图时的点数,5表示间隔的点数

确定后就是这种情况,标识点的密度得到降低。

回答2:

我看楼上的回复很给力,但是我找了很久也是没有找到那个功能,所以自己有想了一个循环的方法,给大家做一下参考

程序如下

x=0:0.01:2*pi;

y=sin(x);

plot(x,y)

hold on

for i=0:0.5:2*pi

y=sin(i);

plot(i,y,'marker','o')

end

运行结果

回答3:

程序如下:

syms xGstar yArstar
D1=1.5; D2=1.6; K=4; phi=0.01;
acstar1 = (0.5*sqrt(pi)*K*phi)^(2/(1-D1))*xGstar^2;
acstar2 = (0.5*sqrt(pi)*K*phi)^(2/(1-D2))*xGstar^2;
h = ezplot(sqrt(xGstar/pi)*(yArstar/3)^0.75*log(yArstar/(3*acstar1))+ ...
    K*phi*yArstar^0.75*(3*acstar1)^0.25-3e-4,[1e-9,1e-5,1e-5,5.0e-1]);
set(h,'LineStyle','-','color','k');
  
X = get(h, 'x');
Y = get(h, 'y');
dX = max(X) - min(X);
dY = max(Y) - min(Y);
e = 0.01;   % 距离系数,越小则越密集
clear x y
x(1) = X(1);
y(1) = Y(1);
for i = 2 : length(X)
    if sqrt( ((X(i)-x(end))/dX)^2 + ((Y(i)-y(end))/dY)^2 ) >= e
        x(end+1) = X(i);
        y(end+1) = Y(i);
    end
end
  
% 使用相同的颜色和线宽绘制Marker
hold on
plot(x,y,'o','color',get(h,'color'),'linewidth',get(h,'linewidth'))

回答4:

这是比较麻烦的,我也找了许久,没发现MATLAB有现成的命令。
我的做法是按原来的密集数据y画一条线,然后提取出稀疏的数据y2在画,此时画时,只要画标记就行。
plot(y,'k');
hold on;
plot(y2,'o');
y2是y的稀疏数据。