• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

MATLAB 02

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

对一组数据作线性回归,并绘图

clear all;
% 输入数据x和y
x = [143 145 146 148 149 150 153 154 157 158 159 160 162 164]\';
y = [11 13 14 15 16 18 20 21 22 25 26 28 29 31]\';
x = [ones(length(x),1),x];
%线性回归
[b,bint,r,rint,stats] = regress(y,x);
%r2越接近1,F越大,p越小(<0.05),回归效果越显著
r2 = stats(1)
F = stats(2)
p = stats(3)
%绘制原始数据和拟合的直线
z = b(1) + b(2)*x;
subplot(2,1,1);
plot(x,y,\'o\',x,z,\'-\');
axis([0 180 0 50]);
%绘制残差图
subplot(2,1,2);
rcoplot(r,rint);

在我执行后并没有如期正常出现结果,报错

BLAS 加载错误:
E:\Matlab\bin\win32\atlas_Athlon.dll: 找不到指定的模块。



出错 regress (line 93)
b(perm) = R \ (Q\'*y);

出错 m03 (line 7)
[b,bint,r,rint,stats] = regress(y,x);

  我查看了百度里的,大家好像没有遇到第93行的报错,至于找不到模块我按一片帖子把环境变量中的一个给删除了,依然没有解决。




 

创建一个func.m函数,如果输入的 参数只有一个x,则返回x;如果输入参数有两个(x,y),则返回sqrt(x2+y2).

function b = func(x,y)
%距离函数
%假如 nargin = 1,返回 x
%假如 nargin = 2,返回 sqrt(x^2 + y^2)
if nargin==1
    b=x;
else
    b = sqrt(x.^2 + y.^2);
end

结果

>> func([3,5])

ans =

     3     5

>> func(3,5)

ans =

   5.8310e+00

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap