matlab学习笔记(基础)

开头第一段
怎么讲,学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
1
2
3
4
5
if-else连续调用
——elseif

if 逻辑1
    语句
elseif 逻辑2
    语句
else
    语句
end
1
2
3
4
5
6
7
switch语句
switch 表达式
    case 值1
        语句
    case 值2
        语句
        ...
    otherwise
        语句
end
1
2
3
4
5
6
7
8
9
5、循环
for循环
for 循环变量 = m:s:n  %m初值,s步长,n终止值
语句
end
1
2
3
PS: 
matlab中循环标记变量尽量不要使用i,因为i在matlab中被作为虚数单位。

隐含循环
Example:

x = [0:5:100];
y = cos(x);
1
2
等价于

for k = 1:21
    x = (k-1)*5;
    y(k) = cos(x);
end
1
2
3
4
while循环
while 逻辑表达式
    语句
end
1
2
3
调试
——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.data

ans =

   -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.textdata

ans = 

    'x'    'Curve1`
--------------------- 
作者:邵烽 
来源:优快云 
原文:https://blog.youkuaiyun.com/King_John/article/details/69665263 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值