【在线等】Matlab 散点图线性拟合

我着急做个图,具体题目是:有三组数据:分别为x,y,z,做一个散点图,然后线性拟合,并且在图中显示拟合直线方程,请写出全部运行语句并稍加解释。x坐标名称为H(m),y为S(mm),z为Sf(mm),数据已经列在下面了,万分感谢!重赏!
数据依次为x,y,z
x
1.90
1.90
1.92
1.96
1.99
2.01
2.02
2.02
2.07
2.12
2.19
2.26
2.39
2.40
2.51
2.55
2.59
2.60
2.60
2.63
2.63
2.66
2.67
2.73
2.74
2.75
2.77
2.80
2.80
2.88
2.88
2.89
2.93
2.95
2.95
2.97
2.99
3.00
3.00
3.02
3.04
3.04
3.04
3.09
3.10
3.16
3.23
3.26
3.30
3.30
3.30
3.31
3.33
3.34
3.35
3.36
3.36
3.37
3.38
3.39
3.45
3.45
3.47
3.48
3.49
3.50
3.50
3.53
3.55
3.57
3.57
3.63
3.69
3.69
3.70
3.76
3.77
3.79
3.82
3.84
3.86
3.91
3.93
3.95
3.95
4.06
4.07
4.12
4.14
4.18
4.19
4.22
4.23
4.24
4.32
4.34
4.35
4.36
4.40
4.43
4.43
4.48
4.50
4.51
4.52
4.75
4.86
4.86
4.87
4.88
4.95
5.00
5.01
5.34
5.23
5.26
5.46
5.53
5.54
5.58
5.77
y

65
80
260
65
133
34
356
183
228
73
187
69
273
193
131
53
99
159
60
143
72
68
138
241
96
151
187
170
59
204
177
168
145
155
181
216
104
56
142
261
197
157
96
100
252
73
374
93
193
268
80
166
193
156
64
142
85.6
202
127
154
279
193
54
157
215
147
78
183
171
101
108
183
356
124
111
275
232
359
312
239
221
230
372
240
289
207
98
242
228
326
272
160
258
174
369
214
197
226
79
237
219
120
318
545
128
437
157
306
136
399
237
369
136
425
401
348
309
369
378
195
z
18
9
15
40
5
10
3
33
18
36
16
8
8
15
25
7
7
32
5
15
6
19
11
42
16
1
9
13
11
21
17
14
111
13
26
14
24
26
9
21
10
12
19
17
39
125
10
107
0
10
77
25
23
16
15
15
11
12.6
16
9
2
47
90
10
73
3
15
5
19
19
15
5
18
35
31
25
21
17
10
52
23
18
9
62
20
39
74
15
23
11
45
47
26
15
10
7
8
20
9
11
23
17
14
153
90
9
45
30
43
20
22
36
25
17
45
25
27
49
20
28
25
y值少一个数, y值第一个为59 。
重申一下我的问题是:
根据三组数据x,y,z做散点图,然后线性拟合该散点图,并在同一个Figure里面显示拟合直线和公式。

请给出全部语句,部分说明,我验证符合要求后就采纳为答案,请大家抽个时间帮帮我 。

function f=fit(x,y)
A=polyfit(x,y,1);%返回拟合系数,1表示X的次数是1,也就是直线拟合,
z=polyval(A,x);
plot(x,y,'k+',x,z,'r')%生成拟合图。
f=A;
function f=squ(A)%拟合系数生成拟合方程。
syms x;
b=0;
for i=1:11
b=b+A(i)*x^(11-i);
end
f=b;

A=fit(x,y);%fit是上面的m文件,返回拟合系数
b=squ(A)% squ是一个m文件,生成拟合函数方程
对号入座就可!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-05-16
x和z是121个数,y是120个数,缺一个数。

先用plot3画图看看。
第2个回答  推荐于2017-11-27
plot3(x,y,z,'.')

%下面是用二元回归来求z=b0+b1*x+b2*y中的系数【b0,b1,b2】

n=length(y);
X=[ones(n,1),x,y];
[b,bint,r,rint]=regress(z,X);%其中b为系数,bint为系数的置信范围,r为参差,rint是参差的置信区间
b,bint
[xi,yi]=meshgrid(min(x):0.05:max(x),min(y):3:max(y));
zi=b(1)+b(2)*xi+b(3)*yi;
hold on
mesh(xi,yi,zi)
figure
rcoplot(r,rint)%用这个图来来做参差及其置信区间的图,如果数据的置信区间不包含零点,则可认为这个数据是异常的,应把它剔除

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

首先解释下,你说的z是x和y的线性函数,那么这就是二元回归问题

plot3(x,y,z,'.')

%下面是用二元回归来求z=b0+b1*x+b2*y中的系数【b0,b1,b2】

n=length(y);
X=[ones(n,1),x,y];
[b,bint,r,rint]=regress(z,X);%其中b为系数,bint为系数的置信范围,r为参差,rint是参差的置信区间
b,bint
z1=b(1)+b(2)*x+b(3)*y;
hold on
plot3(x,y,z1,'r*')
figure
rcoplot(r,rint)%用这个图来来做参差及其置信区间的图,如果数据的置信区间不包含零点,则可认为这个数据是异常的,应把它剔除

y少了一个数本回答被提问者采纳