Matlab基本操作
矩阵
矩阵的计算
右下角的那个(起始列,步长,终止列)1-》5(步长为2)所以取135
点乘就是要列数相等,列直接*行,乘法就是列=行
注意:linspace是等差的,其实跟冒号法差不多,就是多了可以指定元素个数的功能。
eyes是对角线为1上的元素全为1,eyes几就是几行.
rn是高斯分布的矩阵.
上三角是上面数字,下三角是下面有矩阵。无论是用triau求上三角还是用trial求下三角,_(a,0)都保留正对角线,1才把对角线也给抹掉。
- 矩阵 ;分每一行
- 转置 矩阵行变列 列变行 非方阵也可以 不要记错
- 拉伸 打竖拉伸
- 矩阵求逆 非方阵无法求逆
F=A.*B 带点就是对应项相乘。
除法
pinv(a)是求伪逆矩阵,逆矩阵函数inv只能对方阵求逆,pinv(a)可以对非方阵求逆。
pinv(a)=inv(a’*a)*a’
第三行所有列(其实就是第三行啦)
取第四列
find找的是序号打竖数,从左往右打竖去数。mn取的是数对的xy
多维数组:
可以用最开始的C++的想法去理解,就是用一个一维数组,然后这个数组的每一个元素都是一个一维数组,这里的话就是每一个元素都是矩阵。
也可以理解成是一本书,一本书有n个页,每页都有一个矩阵,但是好像还是c++的更好理解。
创建方法:1.创建二维矩阵再进行扩展 2.B = cat(3,A,[3 2 1; 0 9 8; 5 3 7]) cat(维数,矩阵1,矩阵2…)3.快速赋值 B(:,:,4) = 0 为数组 B 添加第四页,其中包含的值全部为零。
访问:(行,列,页数)
C = A(:,[1 3]😅 每一页的第一列跟第三列
D = A(2:3,:😅 要查找每一页的第二行到第三行
操作:
reshape 逐列操作,打竖提取元素来创建新矩阵,从第一页开始,之后是第二页。
permute
特殊矩阵
diag(里面放什么对角线就是什么)
字符串:
输入、输出
循环
for
1.平方用点乘(列乘列嘛)
2.矩阵的追加(用的蛮妙的)
上面的是4的列向量,下面的是一个列向量(原来是按照列向量去轮哦)
两边包括
双重循环
while
if end
函数
基本结构
函数文件名最好跟函数名相同
可以进行嵌套子函数,但是最后只能调用主函数
eg.
function y = key(w) % 主函数放第一个,函数名为key ,函数名要跟文件名一样 最后也只能引用主函数
if w==0
y = type0(w); % 调用子函数type0
else
y = type1(w);
end
end
function y0 = type0(a) % 子函数,各子函数之间顺序无所谓
y0 = a+1;
end
function y1 = type1(a)
y1 = a+4;
end
有点类似引用变量
匿名函数(我的理解就是给函数取一个别名):
函数可调性:感觉像重载
全局变量
关键字global 跟python是一样的
函数要使用全局变量要声明 跟python真的好像好像
图像
plot
一个x对应一个y。