%----------------------- 第一部分:变量定义和基本运算 ------------------------------------------------------------------------------
% 生成矩阵
%---------------------------------------------------------------
% 直接法
a=[1,2,3;4,5,6;7,8,9];
%冒号一维矩阵 a= 开始:步长:结束 步长为1可省略
b=1:1:10 ;
b=1:10 ;%等价于上一个
%函数生成法
c=linspace(1,10,5); %linspace(开始,结束,元素个数),等差生成指定元素数的一维矩阵,若省略元素个数,则生成100个
%特殊矩阵
e=eye(4); %eye(维数)单位阵
z=zeros(1,4); %zeros(维数)全零阵
o=ones(2,3) ; %ones(维数)全1阵
r=rand(1,4) ; %rand(维数)0-1随机作为元素(可以为小数)的随机阵
rn=randn(4); %randn(维数)0均值高斯分布随机阵
%矩阵运算
%---------------------------------------------------------------
diag_a = diag(a,1) ; %diag(行向量,主对角线上方第k条斜线)用行向量生成对角矩阵,生成的是一个列向量
tril_a = tril(a,1) ; %tril(矩阵,主对角线上方第k条斜线) 生成的下三角阵
triu_a = triu (a,1) ; %上三角阵
%加,减,乘,乘方
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) ; %1代表垂直拼接
c2_a = cat(2,a,a) ; %2代表水平拼接
%变维(注意MATLAB是列存储优先)
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) = [2,2,3;2,5,4] ;
%扩展法
mul_2 =[1,2,3;2,3,4];
mul_2(:,:,2) = [3,4,5;4,5,6]; %若不赋值第一页,第一页全为0
%cat法
mul_31 = [1,2,3;2,3,4] ;
mul_32 = [2,2,3;2,5,4] ;
mul_3 = cat(3,mul_31,mul_32) ; %把mul_31,mul_32按照三维拼接
%字符串
%---------------------------------------------------------------
%字符串创建
str = 'hello world' ; %单括号引起字符串
str = 'I''m a student'; %字符串中的单括号要写两遍
str = ['I''m''a''student']; %方括号连接多个字符串
str = strcat(str0,str1) ; %strcat连接字符串函数
str = strvat(str0,str1) ; %strvvat连接产生多行字符串
str = double(str0) ; %取str0的ASCII值,也可以用abs函数
str = chars(str6) ; %把ASCII值转为字符串
%对字符串操作
%比较 string company i=ignore
strcmp(str0,str1); %相等为1,不相等为0
strncmp(str0,str1,3); %比较前三个是否相等(n)
strcmpi(str0,str1); %忽
matlab速成学习
最新推荐文章于 2023-05-22 15:16:39 发布
本篇博客主要介绍了MATLAB的基础知识和使用技巧,适用于初学者快速掌握MATLAB编程,包括基本语法、数学建模应用等内容。
摘要由CSDN通过智能技术生成