用多了python,真的不适应matlab,好在它们很多地方相似
文章目录
第一部分:基础知识
1 基础知识
1.1 运行结果显示在互动框中
后面跟着分号则表示不显示,没有分号表示显示
1.2 导入数据
在主页中导入数据,然后可以改变变量名。导入的数据自动到工作区中,可以直接使用。
也可以使用代码
data = load('xxx.txt')
1.3 自定义函数和调用
这跟python不一样,有ppt关于这个讲解。
一般选择第一种,即定义M文件的方式
比如定义一个求和的函数,名为additionx;现在要在test中调用它;代码如下(注意存放函数的文件名一定要和函数名一致,这里都是additionx)
看着很简洁,函数定义必须要单独占一个文件,此外一旦定义了函数之后,在下面的互动框中是可以直接运行的
1.4 数组
1.4.1 数组的创建
matlab中创建数组有如下方法:
- 1 手动输入,如 b = [1,2,3,4]
- 2 利用linspace或者logspace
x = linspace(0,10,20) #从1开始到10结束,有20个数
x = logspace(0,10,20) #同上,log坐标
注意上面不是0,0.5,1,1.5…这样的分法,即间隔不是0.5;如果间隔要是0.5,则是21而不是20
- 3 冒号生成法:最常用
x = a:step:b #从a到b,间隔是step
如果没有写step,则默认step=1
1.4.2 数组的索引
跟python不同,matlab的数组索引是通过圆括号(python是方括号)来提取值的,而且第一个索引从1开始(python从0开始),如
1.4.3 在数组末尾加元素,实现append方法
matlab没有python中的append方法,但可以通过其他巧妙方法来实现
先定义a = [],空数组。然后通过每次a = [a i]来添加i元素
1.4.4 数组中逗号和空格
在数组中如定义:
a = [1,2,3]
a = [1 2 3]
1.4.5数组切片
他们表示的函数是一样的,都表示数组有三个元素,索引得到的结果也是一样的。
1.4.6 维度判断和选取
维度的大小通过size函数查看,选取通过逗号法隔开选取
1.5 乘法*和.*的差别
*表示一般的乘法,.*表示矩阵乘法形式,即对应元素相乘。
1.6 if语句
首先要说明1表示true,0表示false:
结果是:a=4; b=2;因为0表示false,所以无法进行第二个if语句。
基本语法
注意,结束一定要使用end,否则无法多重if语句;下面是两层if语句,如果里面的层没有end,则是不能elseif的。
1.7 判断元素是否在数组中并返回索引
通过ismember(2,a)可以得到2是否在数组a中,在返回1,否则返回0;
通过find(a==2)可以返回2在a中的索引(注意索引从1开始数)
1.8 太长换行
如果一行写的计算太长了,使用…来手动换行,表示换行之后依然是连着的。