用matlab实现以下的问题:已知一个具体的平面方程,如何画出三维点的图形
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用matlab实现以下的问题:已知一个具体的平面方程,如何画出三维点的图形相关的知识,希望对你有一定的参考价值。
点云平面方程x+2y+4z.在[-5,5]之间随机选取x和y的值,得到z。一共得到100个点,然后在这100个点里面加入20-30个异常点,就是误差比较大的点,然后将这些点通过matlab画出具体的三维点图,要求有具体源代码,和实验结果图(三维点图),急求,如果好的话,还可以追加悬赏,高手帮助!!
参考技术A plot3(5*rand(1,20)-2.5,5*rand(1,20)-2.5,5*rand(1,20)-2.5,'.')%生成宽度为5的随机向量(20个特殊点)grid on
hold on
A=5*rand(1,100)-2.5%(生成100个点的A阵,宽度为5)
B=5*rand(1,100)-2.5%(生成100个点的B阵,宽度为5)
for i=1:100
C(i)=-1/4*(A(i))-1/2*B(i)
hold on
plot3(A(i),B(i),C(i),'r.')%(循环一次描一次点)
i=i+1
end 参考技术B C=0;
x=10*(rand(1,125)-.5);
y=10*(rand(1,125)-.5);
z=(C-x-2*y)/4 % x+2y+4z=C
%假设你希望误差大概在40%-80%
z(101:125)=z(101:125).*(1.4+.4*rand(1,25));
plot3(x,y,z,'.')
还需要添加什么可继续追问追问
能否给你的这个程序配上一些注释,解释一下每一句话的含义,谢谢,
因为我对matlab不是很了解,只是为了论文上面的一个图,必须要用matlab做出来,谢谢,我的这个问题在另外一个 数学分组里面也有,悬赏分是85,这个分我已经提高到40,如果你能完全帮我解决,那边的85分也给你了,谢谢,,,请尽快,,
C=0;
% rand(1,125)表示1*125的向量,每个元素是[0,1]
% rand(1,125)-.5表示1*125的向量,每个元素是[-0.5,0.5]
% 10*(rand(1,125)-.5)表示1*125的向量,每个元素是[-5,5]
x=10*(rand(1,125)-.5);
% y 同理
y=10*(rand(1,125)-.5);
% z=(C-x-2*y)/4
z=(C-x-2*y)/4 % x+2y+4z=C
% 假设你希望误差大概在50%
% 即我把最后的101到125个元素表示为原值的误差
% .5+rand(1,25)表示[.5,1.5]
% 最后25个元素就是准确值的50%到150%
z(101:125)=z(101:125).*(.5+rand(1,25));
% 利用plot3进行画图
plot3(x,y,z,'.')
足够么?
MATLAB 给三维平面加注解(区分多个三维平面)
我绘制了3个三维平面,如果只是用legend方法加图例的话,如下图所示:
咱就是说,这个图例加了跟没加一样,根本区分不出来谁是谁。所以要想一个别的办法,从这篇文章得到了启发:
在MATLAB中的图例标注及实例说明_李宁的博客-CSDN博客_matlab图例标注
关于annotation函数的具体使用方法见这篇文章:
Matlab中annotation函数的使用_jk_101的博客-CSDN博客_annotation函数matlab
文章中的如下代码达到了我想要的预期效果:
figure
plot(1:10)
x = [0.3 0.5];
y = [0.6 0.5];
annotation('textarrow',x,y,'String','y = x ')
但不幸的是,annotation函数没有在三维上的用法。
经过咱的不懈努力,终于成功了,并且发现了一个非常简单的办法。咱就是说,居然一直忽略了MATLAB设计的非常好的人机交互功能。
画好了箭头以后,可以打字,还在苦恼α怎么打,没成想可以使用LaTeX格式,MATLAB你真是我亲爹!
这不就出来了吗。
甚至,你还可以生成代码,把加注解的代码copy到自己的代码里,这样以后要改动的话就不用手动画箭头了。
以上是关于用matlab实现以下的问题:已知一个具体的平面方程,如何画出三维点的图形的主要内容,如果未能解决你的问题,请参考以下文章