24小时热门版块排行榜    

查看: 1112  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

孤松烟暗

金虫 (小有名气)

[求助] 为啥surf和scatter3差这么多 已有1人参与

源代码如下!我只是想把散点图画成曲面,求大神帮忙 txt文件不知道怎么放
data=dlmread('C:\Users\lenovo\Desktop\matlab与数学\myself\2016.7.13\a.txt');
figure
x1=data(:,1);
y1=data(:,2);
z1=data(:,3);
[X,Y,Z]=griddata(x1,y1,z1,linspace(min(x1),max(x1))',linspace(min(y1),max(y1)),'v4');%插值
surf(X,Y,Z)         
figure
scatter3(x1,y1,z1)%散点图
xlabel('X');ylabel('Y');zlabel('Z')
hold on

为啥surf和scatter3差这么多


为啥surf和scatter3差这么多-1


发自小木虫IOS客户端
回复此楼
追求不完美
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

孤松烟暗

金虫 (小有名气)

引用回帖:
4楼: Originally posted by xiongys at 2016-07-13 15:19:29
两个方法,如果你的数据不是很多,你就按照我这个方法来,生成一个多维的数组,而不是列向量。另外你的z不应该是向量。第二个,找本matlab的书,看下这个grid的具体用法,你就知道了,很简单的

好的
我试试

发自小木虫IOS客户端
追求不完美
5楼2016-07-13 22:49:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

xiongys

金虫 (正式写手)

nobody

【答案】应助回帖

感谢参与,应助指数 +1
如果你的z是对应与每一个(x,y),你就直接定义好xyz后用p=mesh(Y,X,Z);就可以,不用[X,Y,Z]=griddata的。比如
clc
clear all
figure
x=[1 1 1 1 1 1 1 1 1;2 2 2 2 2 2 2 2 2 ;3 3 3 3 3 3 3 3 3;4 4 4 4 4 4 4 4 4;
    5 5 5 5 5 5 5 5 5;6 6 6 6 6 6 6 6 6;7 7 7 7 7 7 7 7 7;8 8 8 8 8 8 8 8 8;
    9 9 9 9 9 9 9 9 9;];
y=[1 2 3 4 5 6 7 8 9;1 2 3 4 5 6 7 8 9;1 2 3 4 5 6 7 8 9;1 2 3 4 5 6 7 8 9;
    1 2 3 4 5 6 7 8 9;1 2 3 4 5 6 7 8 9;1 2 3 4 5 6 7 8 9;1 2 3 4 5 6 7 8 9;
    1 2 3 4 5 6 7 8 9;];
z=2*x+y;
p=mesh(x,y,z);

» 本帖已获得的红花(最新10朵)

iamnobody
2楼2016-07-13 14:45:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

孤松烟暗

金虫 (小有名气)

送红花一朵
引用回帖:
2楼: Originally posted by xiongys at 2016-07-13 14:45:05
如果你的z是对应与每一个(x,y),你就直接定义好xyz后用p=mesh(Y,X,Z);就可以,不用=griddata的。比如
clc
clear all
figure
x=;
y=;
z=2*x+y;
p=mesh(x,y,z);...

多谢回答,不过我运行了下,因为我xyz的都是列向量,所以直接用mesh就会报错。

发自小木虫IOS客户端
追求不完美
3楼2016-07-13 15:05:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiongys

金虫 (正式写手)

nobody

【答案】应助回帖

两个方法,如果你的数据不是很多,你就按照我这个方法来,生成一个多维的数组,而不是列向量。另外你的z不应该是向量。第二个,找本matlab的书,看下这个grid的具体用法,你就知道了,很简单的

» 本帖已获得的红花(最新10朵)

iamnobody
4楼2016-07-13 15:19:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见