MATLAB 画图问题

2025-04-05 15:12:03
推荐回答(1个)
回答1:

%清屏,清内存
clc
clear
clf
hold on %允许前后两幅图叠加
%赋初值
a =[1 2;1 7;4 2;2 5];
lof = [1 2 3 4];
standard_lof = 3; %这个是判断标准
%
plot(a(:,1),a(:,2),'k.') %把所有点都画上,黑色圆点
I=find(lof> standard_lof) %找出大于判断标准的点
plot(a(I,1),a(I,2),'r.') %用红色圆点标出

===============
看不到黑点是因为黑点正好在三个角上,需要的话可以修改一下坐标范围:

xlim([0,5])
ylim([0,10])

===============
可能因为你的矩阵是2×N的,在前面加一个
a=a';
就好了

==============
我这里显示没有问题啊

%清屏,清内存
clc
clear
clf
hold on %允许前后两幅图叠加
%赋初值
a = [1 2
3 1
2 5
4 6
2 3
6 8
1 5
4 2
2 3
4 4
1 1
2 2
3 3
4 5
6 1
2 9
4 1
5 7
2 8
3 5
100 200
1000 1000];
lof = [1 2 3 4];
standard_lof = 3; %这个是判断标准
%
plot(a(:,1),a(:,2),'k.') %把所有点都画上,黑色圆点
I=find(lof> standard_lof) %找出大于判断标准的点
plot(a(I,1),a(I,2),'r.') %用红色圆点标出

===============

plot(a(:,1),a(:,2),'k.')
前面加上
size(a)
size(lof)
把结果发上来看一下

===============
第一个ans是a的?
那a里只有1个数,当然没法画图,要么是你的文件里就只有1个数,要么是中间又对a赋过值。