Matlab 如何更改绘图中特定点的标记

Matlab 如何更改绘图中特定点的标记,matlab,plot,Matlab,Plot,假设我画了这样的图: x = 1:10; y = 10 * x; plot(x, y) 如果我希望图形上的特定点具有特定标记(而所有其他点保持中性),我应该怎么做 例如,我有一个逻辑矩阵,如下所示: I = logical([0 0 0 0 1 0 0 1 0 0]); 我希望I中的所有true值都有一个特殊的标记(例如,一个星)。我打算在同一个绘图上绘制多个图形,因此最好在原始图形的顶部绘制标记。AFAIK您必须为特殊标记使用不同的plot命令(这可能会影响图例的行为,但我不确定) 例如(

假设我画了这样的图:

x = 1:10;
y = 10 * x;
plot(x, y)
如果我希望图形上的特定点具有特定标记(而所有其他点保持中性),我应该怎么做

例如,我有一个逻辑矩阵,如下所示:

I = logical([0 0 0 0 1 0 0 1 0 0]);

我希望
I
中的所有
true
值都有一个特殊的标记(例如,一个星)。我打算在同一个绘图上绘制多个图形,因此最好在原始图形的顶部绘制标记。

AFAIK您必须为特殊标记使用不同的
plot
命令(这可能会影响
图例的行为,但我不确定)

例如(
y=rand(1,10)
):

AFAIK您必须为特殊标记使用不同的
绘图
命令(这可能会影响
图例
的行为,但我不确定)

例如(
y=rand(1,10)
):
I
是合乎逻辑的,所以
x(I)
y(I)
应该足够了。@如果你是对的话。但由于问题中发布了
I
,因此并非100%清楚它确实是一个逻辑数组。所以,我决定在这件事上稳妥一点。它明确地说,
I
是合乎逻辑的。@EitanT确实如此。但是
I=[0 0 0 1 1]
当您将粘贴复制到matlab时,会创建一个
数组,而不是逻辑数组。。。讨厌的功能。@EitanT正常。光明节快乐。
I
是合乎逻辑的,所以
x(I)
y(I)
应该足够了。@EitanT你是对的。但由于问题中发布了
I
,因此并非100%清楚它确实是一个逻辑数组。所以,我决定在这件事上稳妥一点。它明确地说,
I
是合乎逻辑的。@EitanT确实如此。但是
I=[0 0 0 1 1]
当您将粘贴复制到matlab时,会创建一个
数组,而不是逻辑数组。。。讨厌的功能。@EitanT正常。光明节快乐。
plot( x, y ); % regular plot
hold on; % make sure old plot sticks around
plot( x(I), y(I), 'h' ); % only markers as stars