脚本文件和函数文件的区别
-
脚本文件(m文件)
没有输入输出参数,执行后变量结果返回工作空间,可直接运行
-
函数文件
以function开头,有输入输出,变量为局部变量不返回工作空间,需要调用 注意函数名要和文件名一样
注意所有命令遇到 ‘;’都会结束 ‘;’之前的任务 在上述函数调用案例中,若采用[a,b]= cirs(5);则在命令行窗口不会有输出的产生
矩阵 数组 字符串
% 生成矩阵
% 直接法
a = [1,2,3;4,5,6;7,8,9];
% 冒号一维矩阵 a = 开始:步长:结束,步长为1可省略
b = 1:1:10; % 1,2,...10
b = 1:10; %与上一个等价
% 函数生成
% linspace(开始,结束,元素个数),等差生成指定元素数的一维矩阵,省略个数则生成100个
c = linspace(0,10,5);
% 特殊矩阵
e = eye(4); % eye(维数)单位阵
z = zeros(1,4); % zeros(维数)全零阵
o = ones(4,1); % ones(维数)全1阵
r = rand(4); % rand(维数)0~1分布随机阵
rn = randn(4); % randn(维数)0均值Gaussian分布随机阵
%%
% 矩阵运算
diag_a = diag(a,1); % diag(行向量,主对角线上方第k条斜线)用行向量生成对角阵
tril_a = tril(a,1); % tril(矩阵,主对角线上方第k条斜线)生成矩阵的下三角阵,triu上三角阵
% 加、减、乘、乘方
a*a
% 点运算
% a.*b , a./b , a.\b , a.^b 对应元素的*,/,\,^运算
a.*a
% 逆矩阵
pinv(a) % 伪逆矩阵,当a不是方阵,求广义逆矩阵;当a是可逆方阵,结果与逆矩阵相同
% 特征值,特征向量
[v,D] = eig(a); % 输出v为特征向量,D为特征值对角阵
% *行列式
det(a)
% *秩
rank(a)
% *伴随
compan(b)
%%
% 矩阵的修改
%部分替换
chg_a = a;
chg_a(2,3) = 4; % (行,列)元素替换
chg_a(1,:) = [2,2,2]; % (行,:)替换行,为[]删除该行
chg_a(:,1) = []; % (:,列)替换列,为[]删除该列
% 转置
T_a = a';
% 指定维数拼接
c1_a = cat(1,a,a); % 垂直拼接
c2_a = cat(2,a,a); % 水平拼接
% *变维
rs_a = reshape(a,1,9); % 元素个数不变,矩阵变为m*n
%%
% 信息获取
% 矩阵的行列数
[row_a, col_a] = size(a); % [行数,列数]
% 行列中最大的
len_a = length(a);
%%
% 多维数组
% 创建
% 直接法
mul_1(:,:,1) = [1,2,3;2,3,4];
mul_1(:,:,2) = [3,4,5;4,5,6];
% *扩展法
mul_2 = [1,2,3;2,3,4];
mul_2(:,:,2) = [3,4,5;4,5,6]; % 若不赋值第一页,第一页全为0
% cat法
mul_31 = [1,2,<