这个matlab画点,为什么画不出来呢?

来源:百度知道 编辑:UC知道 时间:2024/07/05 17:05:05
Y = load('bhat.txt')
figure;
plot(Y(1,:),Y(2,:),'*');
axis([170 190 70 95]);
title('One-Class SVM');
hold on;
这些是数据呢,每一行是一组数据,一共两维的:
25 25
29 25
33 25
45 25
25 29
29 29
33 29
37 29
41 29
45 29
49 29
53 29
57 29
61 29
25 33
29 33
33 33
37 33
41 33
45 33

楼主在做 support vector machine的作业?
原因可能有3,
第一是你的数据维数不对,使得y(1,:)和y(2,:)维数对不上,但是这个在运行时会报错,你说“画不出来”。。。

第二我一般读取.txt文件都用txtread('bhat.txt'),你可以试试

第三,也是我认为最有可能的原因,你的数据范围根本就不在你限定的坐标显示范围中,所以结果会是一张空白的图。

根据你的文件,你有几处错误:第一,你是列数据,应该用
y(:,1)和y(:,2)来plot,第二,你看你x,y的范围x在25和45之间,y在25和33之间,你的axis函数就用错了,改成如下:

Y = load('bhat.txt')
plot(Y(:,1),Y(:,2),'k-*');
axis([20,50,20,35]);
title('One-Class SVM');
hold on;

写错了啊。。。。
Y(1,:)表示Y的第一行,也就是25 25
Y(2,:)也一样

应该改成
Y(:,1)和Y(:,2)

另外axis设置的范围也不对。。。

你把那个bhat.txt的内容给贴出来看看,不然别人怎么知道问题在哪儿

Y = load('bhat.txt');
figure;
plot(Y(:,1),Y(:,2),'*');
axis([20 60 20 40]);
title('One-Class SVM');
hold on;