【MATLAB 入门指南 一】基本操作与矩阵输入 | 您所在的位置:网站首页 › matlab01 › 【MATLAB 入门指南 一】基本操作与矩阵输入 |
1.MATLAB 主界面
MATLAB 中有一些变量有其具体意义,不适合用作变量名. 变量 意义 ans 上一句的运算的结果 i 和 j 复数算子 inf 无穷 ∞ eps 浮点相对精度,即 1.0 到下一个浮点数之间的距离(值为2.2204e-16) NaN 非数字 pi 圆周率 π realmin 最小浮点数 2−1022 realmax 最大浮点数 (2−ε)21023 通过将非零值除以零或计算明确定义的溢出(即超过 realmax)的数学表达式,会生成无穷值。通过尝试计算 0/0 或 Inf-Inf 等没有明确定义的数值的表达式,会生成非数字 >> 0/0 ans = NaN >> 5/0 ans = Inf 复数复数包含实部和虚部,虚数单位是 -1 的平方根 >> sqrt(-1) ans = 0.0000 + 1.0000i用 i 或者 j 表达虚部,用 j 最终的结果均为 i 来表达 >> c = [3+4i, 4+3j; -i, 10j] c = 3.0000 + 4.0000i 4.0000 + 3.0000i 0.0000 - 1.0000i 0.0000 +10.0000i除此以外,使用 iskeyword 命令可以查看 MATLAB 语言所有的关键字,这些关键字也不允许被用作变量名: break、case、catch、classdef、continue、else、elseif、end、for、function、global、if、otherwise、parfor、persistent、return、spmd、switch、try、while 2.3 MATLAB 调用优先级![]() 这里并没有触发内置函数 cos 的执行,而是当作了一个字符串变量 此时,若某函数被变量名所覆盖,则调用 clear 可以取消绑定在该函数名上的变量名,并将此变量从工作区中清除 >> clear cos % 清除绑定在 cos 上的变量 >> cos(8) % 调用内置余弦函数运算得到-0.1455 ans = -0.1455注:clear 是一个比较危险的命令,因为该命令后若不加参数,则表示清除当前工作区内的所有变量. 2.4 变量的类型MATLAB 中的变量类型有: logical,char,numeric,cell、struct 以及由他们组成的数组或矩阵 我们直接定义的数字型变量,默认是以 double 形式存储的. 我们可以通过 format 改变数字型变量的显示格式. 显示格式 说明 例子 short 短定点格式.显示小数点后 4 位 3.1416 long 固定的十进制格式,double类型变量显示小数点后15位,对float类型变量显示小数点后7位. 3.141592653589793 shortE 小数点后有4位数的短科学记数法 3.1416e+00 longE 长科学计数法.对double类型变量显示小数点后15位,对float类型变量显示小数点后7位. 3.141592653589793e+00 bank 小数点后有两位的货币格式 3.14 hex 十六进制格式 400921fb54442d18 rat 比例格式 355/113 >> format long >> pi ans = 3.141592653589793 >> format bank >> pi ans = 3.14 >> format rat >> pi ans = 355/113运算实例: 1 2 \frac{1}{2} 21 + 1 3 \frac{1}{3} 31 + 1 4 \frac{1}{4} 41 >> 1/2 + 1/3 + 1/4 ans = 1.0833 >> format longE >> ans ans = 1.083333333333333e+00 >> format rat >> ans ans = 13/12 2.6 MATLAB命令行 行尾;在一行命令后使用可以使得此句不输出结果,仅保存在工作区 其他命令: 命令 作用 clc 清除命令行窗口的所有命令 clear 清除当前工作区内所有变量 clear 清除工作区指定变量 who 列出工作区中的变量 whos 列出工作区中的变量及大小和类型 3. MATLAB 数字运算 3.1 使用 MATLAB 计算数学表达式 运算的优先级规则:同等优先级下从左向右运算,优先级顺序从高到低: 括号() 乘方^ 乘除法*,/ 加减法+,-数学表达式求值实例: 数学表达式 MATLAB命令 cos( ( 1 + 2 + 3 + 4 ) 3 5 \frac{\sqrt {(1 + 2 + 3 + 4)^3}}{5} 5(1+2+3+4)3 ) cos(sqrt((1+2+3+4)^3/5)) sin( π \sqrtπ π ) + ln(tan(1)) sin(sqrt(pi))+log(tan(1)) 2 3.5 × 1.7 2^{3.5×1.7} 23.5×1.7 2^(3.5*1.7) e s i n ( 10 ) e^{sin(10)} esin(10) exp(sin(10)) 3.2 MATLAB 内置的数学函数 运算符与基本运算![]() ![]() 矩阵的定义: MATLAB 命令 结果 标量: 3 3 行向量: [1 2 3 4] [ 1 2 3 ] \begin{bmatrix} 1&2&3 \end{bmatrix} [123] 列向量: [1; 2; 3; 4] [ 1 2 3 4 ] \begin{bmatrix} 1\\ 2 \\ 3 \\ 4 \end{bmatrix} ⎣ ⎡1234⎦ ⎤ 矩阵: [1 21 6; 5 17 9; 31 2 7] [ 1 21 6 5 17 9 31 2 7 ] \begin{bmatrix} 1&21&6\\ 5&17&9\\ 31 & 2 & 7\end{bmatrix} ⎣ ⎡153121172697⎦ ⎤ 4.1.2 使用:运算符创建向量使用冒号运算符:可以创建一个长向量,其语法如下: 冒号表达式 结果 i:j [ i , i + 1 , i + 2 , . . . , j ] \begin{bmatrix} i,&i+1,&i+2,&...,&j\end{bmatrix} [i,i+1,i+2,...,j] i:k:j [ i , i + k , i + 2 k , i + 3 k , . . . , j ] \begin{bmatrix} i,&i+k,&i+2k,& i + 3k, &...,&j\end{bmatrix} [i,i+k,i+2k,i+3k,...,j]冒号运算符使用: MATLAB命令 结果 2:5 [ 2 3 4 5 ] \begin{bmatrix} 2&3&4&5 \end{bmatrix} [2345] 2:2:5 [ 2 4 ] \begin{bmatrix} 2&4\end{bmatrix} [24] [1:5; 2:3:15; -2:0.5:0] [ 1 2 3 4 5 2 5 8 11 14 − 2 − 1.5 − 1 − 0.5 0 ] \begin{bmatrix} 1&2&3 & 4 & 5\\ 2&5&8 & 11 & 14 \\ -2 & -1.5 & -1 & -0.5 & 0\end{bmatrix} ⎣ ⎡12−225−1.538−1411−0.55140⎦ ⎤ 'a':2:'z' ‘acegikmoqsuwy’ 4.1.3 函数生成矩阵 MATLAB命令 结果 eye(n) n × n 的单位矩阵 zeros(n1, n2) n1 × n2 的零矩阵 ones(n1, n2) n1 × n2 的全 1 矩阵 diag(vector) 得到一个以向量vector中内容为对角线的对角矩阵 linspace(x1,x2,n) 生成区间为[x1, x2],有 n 个点的等差数列 magic(n) 生成 n × n 的幻方矩阵 rand 均匀分布的随机数 randn 正态分布的随机数 矩阵和数组![]() 矩阵索引的规则: 原矩阵 索引 结果 说明 A = [ 1 2 3 4 5 6 7 8 9 ] \begin{bmatrix} 1&2&3\\ 4&5&6\\ 7 & 8 & 9\end{bmatrix} ⎣ ⎡147258369⎦ ⎤ A(8) 6 以列开始,取第 8 个元素 (线性索引) A = [ 1 2 3 4 5 6 7 8 9 ] \begin{bmatrix} 1&2&3\\ 4&5&6\\ 7 & 8 & 9\end{bmatrix} ⎣ ⎡147258369⎦ ⎤ A([1 3 5]) [ 1 7 5 ] \begin{bmatrix} 1&7& 5 \end{bmatrix} [175] 取矩阵第 [1 3 5] 位置元素放入新矩阵的对应位置 A = [ 1 2 3 4 5 6 7 8 9 ] \begin{bmatrix} 1&2&3\\ 4&5&6\\ 7 & 8 & 9\end{bmatrix} ⎣ ⎡147258369⎦ ⎤ A([1 2; 3 4]) [ 1 4 7 2 ] \begin{bmatrix} 1&4 \\ 7 & 2 \end{bmatrix} [1742] 取矩阵第 [1 2; 3 4] 位置元素放入新矩阵的对应位置 A = [ 1 2 3 4 5 6 7 8 9 ] \begin{bmatrix} 1&2&3\\ 4&5&6\\ 7 & 8 & 9\end{bmatrix} ⎣ ⎡147258369⎦ ⎤ A(3,2) 8 取矩阵第 3 行,第 2 列 A = [ 1 2 3 4 5 6 7 8 9 ] \begin{bmatrix} 1&2&3\\ 4&5&6\\ 7 & 8 & 9\end{bmatrix} ⎣ ⎡147258369⎦ ⎤ A([1,2], :) [ 1 2 3 4 5 6 ] \begin{bmatrix} 1&2 & 3 \\ 4 & 5 & 6 \end{bmatrix} [142536] 取矩阵第[1,2]行的所有元素 A = [ 1 2 3 4 5 6 7 8 9 ] \begin{bmatrix} 1&2&3\\ 4&5&6\\ 7 & 8 & 9\end{bmatrix} ⎣ ⎡147258369⎦ ⎤ A([1 3], [1 2]) [ 1 2 7 8 ] \begin{bmatrix} 1&2 \\ 7 & 8 \end{bmatrix} [1728] 取矩阵第[1 3]行,第[1 2]列的交叉项注意: 引用数组外部元素,MATLAB 会引发错误 >> A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16] A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 >> A(4,5) Index in position 2 exceeds array bounds. Index must not exceed 4. 不过,可以在赋值语句左侧指定当前维外部的元素。数组大小会增大以便容纳新元素 >> A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16] A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 >> A(4,5) = 17 A = 1 2 3 4 0 5 6 7 8 0 9 10 11 12 0 13 14 15 16 17 4.3 矩阵的操作 4.3.1 值的改变实例分析: 删除某行或某列实例:
![]() 描述性统计量 线性代数 ![]() 常用函数: 函数 作用 说明文档 max 数组的最大元素 点击跳转 sum 数组元素总和 点击跳转 sort 对数组元素排序 点击跳转 sortrows 对矩阵行或表行进行排序 点击跳转 size 数组大小 点击跳转 find 查找非零元素的索引和值 点击跳转 perms 产生所有可能的排列 find 函数:选取 x 矩阵中质数的位置 >> x = [1 2 3; 4 5 6; 7 8 9] x = 1 2 3 4 5 6 7 8 9 >> k = find(isprime(x))' k = 3 4 5 7 使用以下命令按 k 确定的顺序将这些质数显示为行向量 >> x(k) ans = 7 2 5 3 将 k 用作赋值语句的左侧索引时,会保留矩阵结构: >> x(k) = NaN x = 1 NaN NaN 4 NaN 6 NaN 8 9 4.4 高维矩阵![]() ![]() 高维数组中元素的访问 >> A A(:,:,1) = 1 2 3 4 5 6 7 8 9 A(:,:,2) = 10 11 12 13 14 15 16 17 18 只访问 A 的每一页上的第一列和第三列 >> C = A(:,[1 3],:) C(:,:,1) = 1 3 4 6 7 9 C(:,:,2) = 10 12 13 15 16 18操作高维数组 ![]() [1] MATLAB 官方文档 [2] MATLAB01:基本的数学运算与矩阵运算 [3] MATLAB(一)基本操作与矩阵输入 [4] MATLAB使用教程(一)——从零开始,基础,数据类型——新手来看 [5]【经验分享】CSDN如何修改文字的字体、大小以及颜色 [6] CSDN如何编辑数学公式 |
CopyRight 2018-2019 实验室设备网 版权所有 |