MATLAB入门学习(四)
这是新建新的.m文件,也就是matlab命令文件,
一般命令文件不带输入和输出的参数,只是一些命令的组合,带有输入输出参数的文件是函数文件~
输入disp('Hello World!');
是不是很无聊
。。。那就来个好一点的~
输入:
t=pi*(0:0.001:1);
x=sin(t).*sin(10*t);
comet(t,x)
然后运行,,自己研究玩去吧~
m文件就是这样啦,方便多次运行保存和修改,解决复杂的问题更方便~♪(^∇^*)
我们继续学习。。。
接下来看看函数文件的编写
新建一个函数文件
函数的第一行的格式 :function [输出的参数] =函数名 (输入的参数)
输入和输出的参数可以有多个
保存函数文件的时候,注意文件名要和函数名一样
函数头和函数体之间可以有多行%开始的注释,说明函数的使用方法,当执行 help 函数名 的时候会显示这些注释 ,直到遇到第一个非注释行为止
语法也没什么好讲的,我们直接看一个例子吧 ~(~ ̄▽ ̄)~
这是二分法求近似值的程序:
function [x_star,k] = bisect1(fun,a,b,ep)
%二分法求方程的近似值
if nargin<4
ep=1e-5;
end
fa=feval(fun,a);fb=feval(fun,b);
if(fa*fb>0)
disp('error');
x_star=NaN;
k=NaN;
else
k=1;
while abs((b-a)/2)>ep
x=(a+b)/2;
fx=feval(fun,x);
if fa*fx<0
b=x;fb=fx;
else
a=x;fa=fx;
end
k=k+1;
end
x_star=(a+b)/2;
end
(⊙﹏⊙)b看不懂也没关系,看解释~~~
第一行:
function [x_star,k] = bisect1(fun,a,b,ep)
注意输入的参数。x_star, k 都是数字;fun 是函数;a, b, ep都是数字
这个程序目的是输入一个函数fun以及给定的区间[a,b],求出精确度为ep的零点x_star,k为迭代次数 。
if nargin<4
ep=1e-5;
end
nargin,nargout 是函数文件里的固有变量,意思是输入(输出)参数的个数
这句话就是说,如果只输入前三个参数,那么精确度默认为1e-5
fa=feval(fun,a); fb=feval(fun,b);
feval(fun,a)用于计算函数fun 在点a 处的函数值,这个命令记住就行了。(๑•̀ㅂ•́)و✧
if(fa*fb>0)
disp('error');
x_star=NaN;
k=NaN;
上面这段是无解的情况
else
k=1;
迭代次数初始化
while abs((b-a)/2)>ep
x=(a+b)/2;
fx=feval(fun,x);
区间大于精确度的话就迭代
每循环一次迭代次数加一~~然后没什么可说的了~~~
最后把结果赋值给输出的参数
x_star=(a+b)/2;
写完保存,记得文件名要和函数名相同(⊙v⊙)
然后回到命令窗口
我们来求一个函数f(x)=x^3-x-1 在区间[1,15]上的零点~~
在命令窗口依次输入:
fun=inline('x^3-x-1');
[x_star,k]=bisect1(fun,1,15,0.005)

插一句:关于循环语句 ,和c语言一样的有三种
while
for
do while
注意for(int i=1;i<10;i++)
在matlab写成for i=1:10 ... end
如果是i=i+2,就写成 for i=1:2:10
这个和那个线性生成向量的是一样的啦(~ ̄▽ ̄)~
matlab函数也是可以递归调用的,但是效率很差,不推荐使用喔。
哦!我突然想起来c语言里的数组,这在MATLAB里就是用向量,向量用起来还是很方便的,使用前不需要声明,不要动态内存分配,随便用个a(i)就行了
举个例子:求斐波那契数列函数
function [ F ] = Fibonacci( n )
F()=;
F()=;
for i = : n
F(i) = F(i-)+F(i-);
end end
二维同理~
自己多写一些练一练喔 ✧(≖ ◡ ≖✿)
MATLAB入门学习(四)的更多相关文章
- MATLAB入门学习(整合)
整合一下,都是链接地址: MATLAB入门学习(一):初次使用.. MATLAB入门学习(二):矩阵相关 MATLAB入门学习(三):矩阵常用函数 MATLAB入门学习(四):编写简单.m文件和函数文 ...
- SCARA——OpenGL入门学习四(颜色)
OpenGL入门学习[四] 本次学习的是颜色的选择.终于要走出黑白的世界了~~ OpenGL支持两种颜色模式:一种是RGBA,一种是颜色索引模式. 无论哪种颜色模式,计算机都必须为每一个像素保存一些数 ...
- MATLAB入门学习(一)
开始MATLAB入门啦,,,首先感谢xyy大神的帮助!然后我们开始学习吧!<( ̄︶ ̄)↗[GO!] 工作空间窗口:保存了你定义的常量,变量之类的,可以保存也可以被调用. 保存的话会生成一个mat ...
- MATLAB入门学习(七)
开始,线性代数和微积分了,不怕.不怕. 背命令就行了... 线性代数 解线性方程组: Ax=b A是系数矩阵,x未知数,b是列向量 如果有唯一解,直接x=b\A 第二 B=null(A,'r')求Ax ...
- Matlab入门学习(程序设计)
一.循环(for,while) for循环: for i=begin:step:end ...... end while循环: while condition ...... end 二.分枝(if,i ...
- Matlab入门学习(文件读写)
一.save,load >> a=[ ]; >> b=[ ] b = >> save('b.mat','a','b');%a file named b.mat wi ...
- Matlab入门学习(矩阵、函数、绘图的基本使用)
一.矩阵 1.定义和简单使用(一般的编程语言,数组下标都是从0开始的,但是MATLAB是从1开始的) >> a=[ ; ; ] a = >> b=[ ; ; ]; >&g ...
- MATLAB入门学习(六)
今天学三维作图 (*^__^*)…… 三维曲线作图 用到的命令:plot3 基本格式:plot3(x,y,z,s) 这里要画曲线,你需要知道该曲线的参数方程x=x(t),y=y(t),z=z(t) 然 ...
- MATLAB入门学习(五)
现在,我们来学画图吧.╭( ・ㅂ・)و ̑̑ 绘制函数图像最常用的命令是plot plot(x,y,s)x,y为同维向量,绘制分别以x为横坐标,y为纵坐标的曲线 如果x y 是矩阵的话则会绘制多条曲线 ...
随机推荐
- C运算符总结
算术运算符 加减 + - 自左向右 +-同级 乘除取模 * % / 自左向右 高于+ - 自加自减 ++ -- 右结合性 高于基本算术运算符 正负 -+ 自右向左 跟++ --同级 赋值运算符 赋值 ...
- FZU2177——ytaaa——————【区间dp】
ytaaa Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Statu ...
- JSON跨域问题总结
一.跨域问题的原因: 1 浏览器的检查 2 跨域 3 XMLHttpRequest请求二.跨域问题的解决: 1 禁止浏览器检查:使用dos命令,在启动浏览器的时候,加一个参数:chrome --dis ...
- [转]微信小程序填坑之路之使用localhost在本地测试
本文转自:http://www.wxappclub.com/topic/798
- C# ASP.NET Core使用HttpClient的同步和异步请求
引用 Newtonsoft.Json // Post请求 public string PostResponse(string url,string postData,out string status ...
- Expression Blend实例中文教程(8) - 动画设计快速入门StoryBoard
上一篇,介绍了Silverlight动画设计基础知识,Silverlight动画是基于时间线的,对于动画的实现,其实也就是对对象属性的修改过程. 而Silverlight动画分类两种类型,From/T ...
- git 命令记录贴
记录下最近使用git的场景. 问题 1:将一个完整的项目发布到已创建好的git地址(码云) 执行步奏: 1.配置自己的公钥 2.检查是否连接成功 $ ssh -T git@git.oschina.ne ...
- Excel批量生成条形码
项目要求需要将信息做成条形码的形式,以便通过手持设备直接查看信息,因本次项目信息为固定信息,不需随机生成,故采用本方法: 代码随机生成二维码暂时没有接触,后续有时间会研究 步骤: 1.新建 Excel ...
- orderby与groupby同时使用
两个同时使用:要求排序其他字段 select c1,max(c2) as a from table group by c1 order by a; in查询按照排序结果: ,,,....)
- nodejs的socket.io学习笔记
socket.io学习笔记 1.服务器信息传输: 2.不分组,数据传输: 3.分组数据传输: 4.Socket.io难点大放送(暂时没有搞定): 服务器信息传输 1. // send to curre ...



