导图社区 matlab基础
对于matlab基本操作和数据的导图,MATLAB是由MathWorks公司出品的一款商业数学软件,它主要用于数据分析、算法开发、建模以及数值计算等领域。
编辑于2024-09-28 12:33:34matlab基础
matlab变量
生成矩阵
% 直接法 a = [1,2,3;4,5,6;7,8,9];
间接法 a=begin:footstep:end a=1:1:10;
function gennerate c=linspace(0,10,5) begin end mount=100
spacail matrix e=eye(4) %维数单位矩阵 z=zeros(1,4) 列 长 o =ones(4,1) 列长 r=rand(4) 01random matrixz 只写一个是方正,两个先列后行 rn=randn(4) 标准正太
矩阵运算
diag(A,1) 行向量 主对角线上方第K条对角线 可负 tril(A,1) 把该线的上三角清空 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) % *伴随 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 马特拉布采取列优先存储,reshape不可以变元素个数
信息获取
% 矩阵的行列数 [row_a, col_a] = size(a); % [行数,列数] % 行列中最大的 len_a = length(a);
多维数组cat
% cat法 mul_31 = [1,2,3;2,3,4]; mul_32 = [3,4,5;4,5,6]; mul_3 = cat(3,mul_31,mul_32); % 把a1a2按照“3”维连接
string
% *字符串 % 创建 str0 = 'hello world'; % 单引号引起 str1 = 'I''m a student'; % 字符串中单引号写两遍 str3 = ['I''m' 'a' 'student']; % 方括号链接多字符串 str4 = strcat(str0, str1); % strcat连接字符串函数 str5 = strvcat(str0, str1); % strvcat连接产生多行字符串 str6 = double(str0); % 取str0的ASCII值,也可用abs函数 str7 = char(str6); % 把ASCII转为字符串 % 操作 % 比较 strcmp(str0, str1); % 相等为1,不等为0 strncmp(str0, str1, 3); % 比较前3个是否相等(n) strcmpi(str0, str1); % 忽略大小写比较(i) strncmpi(str0, str1, 3); % 忽略大小写比较前3个是否相等 % 查找替换 strfind(str0, str1); % 在str0找到str1的位置 strmatch(str1, str0); % 在str0字符串数组中找到str1开头的行数 strtok(str0); % 截取str0第一个分隔符(空格,tab,回车)前的部分 strrep(str0, str1, str2); % 在str0中用str2替换str1 % 其他 upper(str0); % 转大写,lower转小写 strjust(str0, 'right'); % 将str0右对齐,left左对齐,center中间对齐 strtrim(str0); % 删除str0开头结尾空格 eval(str0); % 将str0作为代码执行 %% %转换 % ___2___ --> 如num2str,将数字转字符串; dec2hex,将十进制转十六进制 str_b = num2str(b); % abs,double取ASCII码;char把ASCII转字符串 abs_str = abs('aAaA');
数据结构
选择
%if-elseif-else-end if a>0 disp(x); elseif a==0 disp(a); else disp(a-1); end
%switch-case-otherwise-end switch a case 0 disp(a); case 1 disp(a+1); otherwise disp('aaa'); end
try-catch出错选择 try z = x*y; catch z = x.*y; % 若try出错,则执行 end disp(z);
循环
% for 循环变量=初值:步长:终值 - end for i=0:1:10 % 步长为负,则初值大于终值 disp(i); % 循环体内不可对循环变量做修改 end % while-end while a>2 disp(a); a = a-1; end
控制
%程序控制 %continue 跳过当次循环剩下语句,进入下一循环 %break 跳出当前循环 %return 跳出程序并返回