学习matlab多长时间,学习matlab,Matlab,的
直接看大佬的整理吧

Matlab的主要工作界面如上。
通常使用Matlab进行工作的时候是创建一个文件夹,里面存放着Matlab脚本、数据等。在这里,我创建了一个Matlab learning 文件夹。然后在里面创建了一个脚本,叫main。这个就相当于是我程序的入口。C#中的Main函数。
命令行窗口
命令行窗口输入的代码会立即执行。比如我输入doc ones会立即出现ones函数的帮助页面。
右边有工作区,存储着matlab运行时变量的值。

a是一个2行4列的矩阵。矩阵的每个元素可以通过()来获取。获取规则是从上到下,从左到右开始。
索引1-8 分别是 1 12 2 34 3 56 4 78。
在写函数之前,先介绍函数的提示。比如

函数zeros( ,我只打了一个括号时,按ctrl+f1就会显示出函数提示。

ones和zeros是最容易创建矩阵的函数了。分别是元素为1的矩阵和元素为0的矩阵。
其中很重要的是
角度一:A(row, col)
提取单个元素
A(3,2) : 访问第三行第二列的数字 2
一次提取多个元素(利用复合形式的row和col)
A([1 3], [1 3]):逗号之前的[1 3]为行,逗号之后的[1 3]为列

则结果为:[1 6;31 7]
角度二:A(index)
依旧以一个示例进行解释:

提取单个元素
A(8):纵向开始数,从左往右依次纵向数,第8个即为所求的A(8): 9
一次提取多个元素(复合形式的index)
A([1 3 5]):表示将A(1),A(3),A(5)整合为一个行向量,结果为[1 31 17],即:[A(1) A(3) A(5)]
A([1 3; 1 3]):同上,即表示:[A(1) A(3);A(1) A(3)]
关于冒号的使用
如果是b=1:5 就是b为从1-5,步长为1的数组。

如果是b=1:0.5:5,就是b为从1-5,步长为0.5的数组

如果b=5:-0.5:1,就是b为从5-1,步长为-0.5的数组

下面可以试着加入;来表示成矩阵的形式。输入的是 b=[1:3;3:3:9]

如果输入>> b=[1:3;3:3:15]

因为第一行有3列,第二行有5列。
冒号的另一个用法
新矩阵




删除整行整列
删除一整行或一整列:赋值[]即可;如A(3, : ) = []使得A的第三行被删除


矩阵运算




相当于[5 6;7 8] * [1 3 ; 2 4] 。然后应用矩阵乘法,算出来的就是上面的矩阵。
注意:两个1维行矩阵必须有一个变成转置矩阵b',这两一个行矩阵一个列矩阵才能相乘


max(A) :表示A中每一列的最大值提取出来后形成的行向量

max(max(A)) : 表示矩阵中最大的entry,即112
min同理
sum(A) :表示A中每一列之和所组成的行向量

mean(A) : 表示A中每一列的平均数所组成的行向量
sort(A):表示A中的每一列进行从小到大的排序(每一个row的数据没有绑定在一起)

sortrows(A):表示A中的所有row按第一列进行排序,每一行row的数据是绑定的。就是说将矩阵A中的数据分成3行,每行根据最前面的元素的大小进行排列。

注:由于矩阵本身第一列已经有序,则矩阵没有变动;而sort(A)则对第二列第三列都做了处理
以下是一个第一列无序的示例:

size(A):求出A的m x n
length(A):求出A的长,也即为:max(m,n)(将A看成矩形,矩形的长即为length(A)的值)
find(A==n):求出A中n的位置是多少(index按前面提到的角度二计算);若不存在则返回:空矩阵: 0×1
循环和条件结构

a=2


n=101

break就是打断当前所在的循环,比如while和for
关于预分配内存,可以用tic toc 函数来计时比较。 预分配内存还是快的

写函数的一些关键函数
判断函数参数大小

nargin表示的是函数输入参数的数量;上面的程序段的意思是:若输入的参数数目只有2个,则将height默认设置为1;相当于python中:def pillar(Do,Di,height=1)
nargout:函数输出的参数个数
varargin:输入参数为列表时的长度
好骚的操作,匿名函数(C#中的委托或者lambda表达式)
语法:
f = @(x) experssion(x)
define x
前一个x是返回值,后一个x是参数。 定义了f后,以后要使用函数,只需f(x)这样调用。
设计匿名函数的原因是,只有一行函数体的函数,不需要额外创建一个m文件,直接写个匿名函数就ok。

更多推荐
所有评论(0)