matlab学习笔记(基础)

来源:互联网 发布:云上贵州大数据 编辑:程序博客网 时间:2024/05/21 00:16

开头第一段

怎么讲,学matlab的当前目标是看懂别人的matlab代码,所以先跳过前面一堆命令行,看看matlab代码是个什么。
这一块内容也是我自己一边看书一边写,所以内容会不断增加的。写的不好不要骂我,但可以随便讲我,哈哈。估计也没太多人看,毕竟很基础的东西。

MATLAB程序


说明

首先,一个用文本形式保存的matlab代码有两种形式:matlab脚本和matlab函数,他们的扩展名都是.m。
脚本和函数相对于命令行的优点我就不说了……因为详细说我感觉很脑残……


创建

其次,创建方法是–>File|New|script(脚本)/Function(函数)。
创建好程序,那就要步入正题了,一个matlab程序应该怎么写,里面一堆函数怎么用,开始吧。


编写

1、注释

%注释文本

注释个是很简单格式。主要需要注意的就是注释的编码风格,要适当的编写注释以方便以后的阅读。

2、控制输入输出

matlab提供了很多输入输出命令。

命令 说明 disp(A) 显示数组A的内容 disp(‘text’) 显示”内的文本串 format 控制屏幕输出的显示格式 fprintf 执行格式化的写入到屏幕或文件 x=input(‘text’) 显示”内文本,等待用户输入,并将输入值赋值给x x=input(‘text’,’s’) 显示”内文本,等待用户输入,并将输入值作为字符串赋值给x k=menu(‘title’,’option1’,’option2’,…) 显示菜单,名称为title,选项是option1,option2,…

3、逻辑与关系

一段程序基本结构,分支、循环,那要构造这些结构,首先要了解逻辑变量和关系运算符。


1关系运算符

什么鬼

关系运算符 含义 < 小于 > 大于 == 等于 ~= 不等于
PAY ATTENTION:这里和其他语言不太一样

2逻辑类和逻辑类构造函数

类名称:logical
构造函数:logical(A),其中A是一个数值数组
PS:A中任何非0数将会赋值为逻辑1


3逻辑运算符和函数

逻辑运算符

运算符 含义 说明 ~这个不说了 &与运算,两个数组与,得到新的逻辑数组 |或运算 && 短路逻辑与 逻辑与,A&&B,则AB都真时为真,否则为假 || 短路逻辑或 逻辑或,A||B,AB都假则为假,否则为真

逻辑函数

逻辑函数 含义 all(x) 返回标量
矢量x中所有元素都非零,则标量为1,否则为0
all(A) 返回一个行矢量
把A的每一列视为x,即同上
any(x) 返回标量
矢量x中有任意非零元素,返回1,否则返回0
any(A) 返回一个行矢量
把A的每一列视为x,即同上
find(A) 返回一个行矢量
包含A中非零向量的索引
[u,v,w]=find(A) 返回u,v,w
u包含A中非零元素的行索引,v包含A中非零元素的列索引,w包含A中非零元素的值
finite(A) 返回维数与A相同的数组
在A中元素为有限值的地方为1,否则为0
ischar(A) 返回标量
A是字符数组,返回1,否则返回0
isempty(A) 返回标量
A是空矩阵,返回1,否则返回0
isinf(A) 返回维数与A相同的数组
A中元素为inf的地方,返回1,否则返回0
isnan(A) 返回维数与A相同的数组
A中元素为nan的地方,返回1,否则返回0(nan:not a number)
isnumeric(A) 返回标量
A是数值数组,返回1,否则返回0
isreal(A) 返回标量
A中没有任何元素具有虚部,返回1,否则返回0
logical(A) 返回维数与A相同的数组
将A中元素转化为逻辑值
xor(A,B) 返回维数与A和B相同的数组
A或B中该位置非零且不同时为零,则该位置为1,否则为零

4、分支语句/条件语句

if-else

if 逻辑表达式    语句else    语句end

if-else连续调用

——elseif

if 逻辑1    语句elseif 逻辑2    语句else    语句end

switch语句

switch 表达式    case 值1        语句    case 值2        语句        ...    otherwise        语句end

5、循环

for循环

for 循环变量 = m:s:n  %m初值,s步长,n终止值语句end

PS:
matlab中循环标记变量尽量不要使用i,因为i在matlab中被作为虚数单位。


隐含循环

Example:

x = [0:5:100];y = cos(x);

等价于

for k = 1:21    x = (k-1)*5;    y(k) = cos(x);end

while循环

while 逻辑表达式    语句end

调试

——debug菜单
save&run
debug

名称 功能 save and run (在哪儿呢……我没找到……等把书看完了我试试,嗯,找到了)保存并运行 step 步进 step in 进入被调函数步进 step out 运行剩余函数部分,跳出到外部函数

画图

画图这应该也算一个重点了,因为图像是我们理解函数的重要途径和手段。

符号函数的绘制

说实话什么是符号函数我还不是很清楚。不过根据万能的百度,符号函数一般来说是指:

数学上的Sgn 函数返回一个整型变量,指出参数的正负号。语法Sgn(number), number 参数是任何有效的数值表达式。返回值如果 number 大于0,则Sgn 返回1;等于0,返回0;小于0,则返回-1。number 参数的符号决定了Sgn 函数的返回值。

不过我从这本matlab的书上看到它上面的一些举例代码来看,所处理的函数包括:余弦函数、螺旋曲线方程还有极为复杂的一个指数二元二次的函数,不过都有个特点,就是有正有负。所以,我理解为只要能根据自变量得出正负号信息的函数,就是符号函数。
可能不准确,以后发现不对了再来修改吧。但愿有大神能看到给我点拨一下。

平面图

  • ezplot(f)
    绘制f在[-2pi,2pi]内的函数
  • ezplot(f,[min,max])
    绘制f在制定区间内的函数
    • 隐函数,区间x=[min,max],y=[min,max]
    • 显函数,区间【min,max】
    • (啥是显函数,啥是隐函数?)
  • ezplot(f,[xmin,xmax,ymin,ymax])
    • 绘制f在制定区间内的函数

曲面网格/表面图

  • 网格图
    • ezmesh(f)
      • 绘制函数f(x,y)在[-2pi,2pi]内的的图像
    • ezmeshc(f,domain)
      • 绘制函数f(x,y)在domain区间内的图像
        domain为4*1或2*1的数组,如[min,max],x=[min,max],y=[min,max]或[xmin,xmax,ymin,ymax]
    • ezmeshc(x,y,z)
      • 绘制参数方程x = x(s,t), y = y(s,t), z =z(s,t)在默认区域-2pi\<’s,t<2pi区间的图像
    • ezmeshc(x,y,z,[smin,smax,tmin,tmax])
      • 绘制参数方程x = x(s,t), y = y(s,t), z =z(s,t)在规定区域的图像
    • ezmeshc(…, n)
      • 指定绘图的网格数n,默认为60
    • ezmeshc(…, ‘circ’)
      • 在指定区域的中心的圆盘上绘制图形
  • 表面图
    -aaa

先突兀的更新一下查看mat数据的方法:

查看mat数据

网上说直接load,然而load了之后并不能查看数据啊……只是显示了里面包含的数据类型和规模,那怎么具体表示里面的数据呢?我还是很想看看的……经过一系列百度得到以下结果:

For example

>> x=importdata('Inverse11.mat')x =           data: [13x2 double]      textdata: {'x'  'Curve1'}    colheaders: {'x'  'Curve1'}>> x.dataans =   -5.1022   -0.6084   -3.9924   -0.7133   -3.1249   -0.9650   -2.1057   -1.4895    1.0342    3.0420    1.0342    3.0420    1.0342    3.0420    1.0342    3.0420    1.0342    3.0420    1.9070    1.4895    2.9682    1.0490    3.9941    0.7762    5.1033    0.6503>> x.textdataans =     'x'    'Curve1`
2 1
原创粉丝点击