Matlab学习日记(四)

4.第四天2022-1-22

4.1 变量转换+初等函数+行向量

>> realmax('double')%双精度的极大值
ans =
  1.7977e+308

初等函数:三角函数、求整函数、求符号、求方根、角度弧度互化、对数函数、指数函数

>> fix(-3.5)%向0取整,去掉小数部分,留下整数部分
ans =
    -3
>> fix(1.5)%向0取整
ans =
     1
>> floor(-3.5)%向负无穷取整
ans =
    -4
>> floor(2.3)%向负无穷取整,地板
ans =
     2
>> ceil(19.99)%向正无穷取整,天花板
ans =
    20
>> round(1.5)%四舍五入
ans =
     2
>> round(pi)%四舍五入
ans =
     3
>> round(pi,2)%四舍五入,保留两位小数
ans =
    3.1400
>> mod(13,3)%13/3的余数
ans =
     1
>> rem(13,3)%13/3的余数
ans =
     1
     %%mod和rem有轻微的区别

>> sign(1.3)%返回符号,正数、正无穷是1,负数、负无穷是-1
ans =
     1
>> sign(-1.3)
ans =
    -1
>> sign(Inf)
ans =
     1
>> sign(-Inf)
ans =
    -1
>> sign(NaN)
ans =
   NaN
>> sign(0)
ans =
     0
>> sqrt(2)
ans =
   1.414213562373095
>> nthroot(2,2)%2的平方根
ans =
   1.414213562373095
>> nthroot(2,3)%2的立方根
ans =
   1.259921049894873
>> deg2rad(180)%角度化为弧度
ans =
   3.141592653589793
>> rad2deg(pi)%弧度化为角度
ans =
   180
>> log(2.718)%以e为底的对数函数
ans =
   0.999896315728952
>> log2(1024)%以2为底的对数函数
ans =
    10
>> log10(realmax('double'))%以10为底的对数函数,realmax('double')是双精度的上限
ans =
     3.082547155599167e+02
>> exp(1)%e^1
ans =
   2.718281828459046
>> exp(10)%e^10
ans =
     2.202646579480672e+04
>> 2^3
ans =
     8

%matlab:matrix laboratory矩阵实验室

矩阵:二维数组,列向量和行向量是一维数组

>> v=[5 88 3 11]
v =
     5    88     3    11
>> 3:1:9 %3 4 5 6 7 8 9
ans =
     3     4     5     6     7     8     9
>> 9:-1:3
ans =
     9     8     7     6     5     4     3
>> 1:2:6
ans =
     1     3     5
>> linspace(3,9,7)%等差数列,初始值3,结束值9,一共7个数
ans =
     3     4     5     6     7     8     9
>> v=logspace(3,9,7)%等比数列,从10的3次方开始,10的9次方结束,个数是7
v =
   1.0e+09 *
  1 至 4 列
   0.000001000000000   0.000010000000000   0.000100000000000   0.001000000000000
  5 至 7 列
   0.010000000000000   0.100000000000000   1.000000000000000
>> v(1)
ans =
        1000
>> v(7)
ans =
     1.000000000000000e+09
>> v=3:9%没写步数,默认是1
v =
     3     4     5     6     7     8     9
>> u=0.1:0.2:0.9
u =
  1 至 4 列
   0.100000000000000   0.300000000000000   0.500000000000000   0.700000000000000
  5 列
   0.900000000000000
>> [u v]%组合行向量
ans =
  1 至 4 列
   0.100000000000000   0.300000000000000   0.500000000000000   0.700000000000000
  5 至 8 列
   0.900000000000000   3.000000000000000   4.000000000000000   5.000000000000000
  9 至 12 列
   6.000000000000000   7.000000000000000   8.000000000000000   9.000000000000000
>> v([3 4])%访问v的第三个第四个元素
ans =
     5     6
>> v([3 1 3 2 4])%访问v的第3 1 3 2 4个元素
ans =
     5     3     5     4     6
>> v(end-1)%访问v的倒数第二个元素
ans =
     8
>> v(2:end-1)%访问v的第2个到倒数第二个元素
ans =
     4     5     6     7     8
>> v([3 1 3 2 4 end])%访问v的第3 1 3 2 4 和最后一个元素
ans =
     5     3     5     4     6     9
     
>> v(2)=-4%改变第二个元素是-4
v =
     3    -4     5     6     7     8     9
>> v(2:4)=[1 2 3]%改变第2-4个元素是123
v =
     3     1     2     3     7     8     9
>> v(10)=12%将第十个元素赋值12.不提倡这种超过维度的赋值做法
v =
     3     1     2     3     7     8     9     0     0    12
>> a=2:2:8
a =
     2     4     6     8
>> b=3:3:24
b =
     3     6     9    12    15    18    21    24
>> b(a([4,3]))%b([8,6])
ans =
    24    18 

4.2 列向量+矩阵

>> [3;7;4]
ans =
     3
     7
     4
>> [3 7 4]'%共轭转置
ans =
     3
     7
     4
>> [1+3i 2-7i 5+4i]'%复数转置会显示共轭
ans =
  1.000000000000000 - 3.000000000000000i
  2.000000000000000 + 7.000000000000000i
  5.000000000000000 - 4.000000000000000i
>> [1+3i 2-7i 5+4i].'%转置,不是共轭的了
ans =
  1.000000000000000 + 3.000000000000000i
  2.000000000000000 - 7.000000000000000i
  5.000000000000000 + 4.000000000000000i
>> v=(3:9)'
v =
     3
     4
     5
     6
     7
     8
     9
>> v([3 4])
ans =
     5
     6
>> v_col=(3:9)'%列向量
v_col =
     3
     4
     5
     6
     7
     8
     9
>> v_row=(3:9)%行向量
v_row =
     3     4     5     6     7     8     9
>> v_col([3:5])
ans =
     5
     6
     7
>> v_row([3:5])
ans =
     5     6     7

矩阵

>> M=[9 6 3;5 7 2]
M =
     9     6     3
     5     7     2
>> rand(2)%两行两列随机矩阵
ans =
   0.814723686393179   0.126986816293506
   0.905791937075619   0.913375856139019
>> rand(2,3)%两行三列随机矩阵
ans =
   0.632359246225410   0.278498218867048   0.957506835434298
   0.097540404999410   0.546881519204984   0.964888535199277
>> randi([1,10])%1-10之间随机数
ans =
     2
>> randi([1,10],3,4)%1-10之间随机3行4列随机矩阵
ans =
    10     9    10     7
    10     2     8     1
     5     5    10     9
>>  randi([1,10],[3,4])%1-10之间随机3行4列随机矩阵
ans =
    10     8     2     3
     7     4     8     1
     8     7     1     1
>> zeros(3)%0矩阵
ans =
     0     0     0
     0     0     0
     0     0     0
>> ones(3,5)%全1矩阵
ans =
     1     1     1     1     1
     1     1     1     1     1
     1     1     1     1     1
>> eye(4)%单位矩阵
ans =
     1     0     0     0
     0     1     0     0
     0     0     1     0
     0     0     0     1
>> v
v =
     3
     4
     5
     6
     7
     8
     9
>> diag(v)%让对角线是v值的矩阵
ans =
     3     0     0     0     0     0     0
     0     4     0     0     0     0     0
     0     0     5     0     0     0     0
     0     0     0     6     0     0     0
     0     0     0     0     7     0     0
     0     0     0     0     0     8     0
     0     0     0     0     0     0     9
>> diag([1 2 3 4])%对角线是1234的矩阵
ans =
     1     0     0     0
     0     2     0     0
     0     0     3     0
     0     0     0     4
>> diag(-1:-1:-6,-1)%让原对角线下面一行的一行数字-1到-6递减
ans =
     0     0     0     0     0     0     0
    -1     0     0     0     0     0     0
     0    -2     0     0     0     0     0
     0     0    -3     0     0     0     0
     0     0     0    -4     0     0     0
     0     0     0     0    -5     0     0
     0     0     0     0     0    -6     0
>> diag(-1:-1:-6,-1)+diag(v)%加到原来的矩阵上
ans =
     3     0     0     0     0     0     0
    -1     4     0     0     0     0     0
     0    -2     5     0     0     0     0
     0     0    -3     6     0     0     0
     0     0     0    -4     7     0     0
     0     0     0     0    -5     8     0
     0     0     0     0     0    -6     9
>> diag(1:5)%对角线是1-5的矩阵
ans =
     1     0     0     0     0
     0     2     0     0     0
     0     0     3     0     0
     0     0     0     4     0
     0     0     0     0     5
>> diag(1:4,1)%对角线上一行是1-4的矩阵
ans =
     0     1     0     0     0
     0     0     2     0     0
     0     0     0     3     0
     0     0     0     0     4
     0     0     0     0     0 
>> diag(1:5)+diag(1:4,1)+diag(2:5,-1)%对角线是1-5,对角线上一行是1-4,对角线下一行是2-5的矩阵
ans =
     1     1     0     0     0
     2     2     2     0     0
     0     3     3     3     0
     0     0     4     4     4
     0     0     0     5     5
>> diag(1:5)+diag(1:4,1)+diag([2 4 6 8],-1)%对角线是1-5,对角线上一行是1-4,对角线下一行是指定的矩阵
ans =
     1     1     0     0     0
     2     2     2     0     0
     0     4     3     3     0
     0     0     6     4     4
     0     0     0     8     5
>> M
M =
     9     6     3
     5     7     2
>> M(2,3)%返回2行3列的数
ans =
     2
>> M(2,[1 3])%返回第二行的第一个和第三个数
ans =
     5     2
>> M(2,1:3)%返回第二行的1到3个数
ans =
     5     7     2
>> M(2,:)%返回第二行所有数
ans =
     5     7     2
>> M(:,2)%返回第二列所有数
ans =
     6
     7
>> M(end-1,:)%返回倒数第二行的所有数
ans =
     9     6     3
>> M(2)%matlab标号有两种方式,第一种(1,1)(2,2);第二种123的标号是竖着标号的,对应数字956
ans =
     5
>> M([6 3 5 4])%找第6354个数
ans =
     2     6     3     7
>> M(2,3)=NaN%2行3列的数改成NaN
M =
     9     6     3
     5     7   NaN
>> M(1,:)=[1 2 3]%第一行所有数改成123
M =
     1     2     3
     5     7   NaN
>> M(1:2,1:2)%拿出M的第一行的1-2和第二行的1-2个数
ans =
     1     2
     5     7
>> M(1:2,1:2)=[7 8;9 10]%M的第一行的1-2和第二行的1-2个数改成7 8  9 10
M =
     7     8     3
     9    10   NaN
>> M(1,:)=0.5%第一行都改成0.5
M =
   0.500000000000000   0.500000000000000   0.500000000000000
   9.000000000000000  10.000000000000000                 NaN
>> M(1:2,1:2)=Inf%拿出M的第一行的1-2和第二行的1-2个数,改成正无穷
M =
                 Inf                 Inf   0.500000000000000
                 Inf                 Inf                 NaN
>> M(end,:)%选中M的最后一行
ans =
   Inf   Inf   NaN
>> length(M)%返回行数或者列数中大的那个,max(2,3)
ans =
     3
>> size(M)%返回行数和列数
ans =
     2     3
>> vector_size=size(M)%将右侧的数组赋予左侧的变量,变量是一个一行两列的向量
vector_size =
     2     3
>> [n_row,n_col]=size(M)%将2和3分别给第一个和第二个变量
n_row =
     2
n_col =
     3
>> numel(M)%返回元素的个数
ans =
     6
>> numel(v)
ans =
     7
>> zeros(size(M))%创建和M同样大小的0矩阵
ans =
     0     0     0
     0     0     0

4.3 向量和矩阵的常用函数

>> M=randi([1,10],[3,4])%1-10之间随机3行4列随机矩阵
M =
     9    10     4     2
     7     1     8     5
     4     5     8     5
>> reshape(M,2,6)%改变M的形状,2行6列,即保留列的方式,9 7 4 10 1 5 4 8 8 2 5 5竖着排列
ans =
     9     4     1     4     8     5
     7    10     5     8     2     5
>> flipud(M)%向下翻转
ans =
     4     5     8     5
     7     1     8     5
     9    10     4     2
>> fliplr(M)%左右翻转
ans =
     2     4    10     9
     5     8     1     7
     5     8     5     4
>> flip(M)%对矩阵翻转,其实是对列向量进行翻转
ans =
     4     5     8     5
     7     1     8     5
     9    10     4     2
>> rot90(M)%逆时针旋转90度
ans =
     2     5     5
     4     8     8
    10     1     5
     9     7     4
     
>> A=[1 2;3 4]
A =
     1     2
     3     4
>> repmat(A,2,3)%将A矩阵复制2行3列,变成4行6列 repeat matrix
ans =
     1     2     1     2     1     2
     3     4     3     4     3     4
     1     2     1     2     1     2
     3     4     3     4     3     4
>> repelem(A,2,3)%repeat element,将每个元素复制2行3列
ans =
     1     1     1     2     2     2
     1     1     1     2     2     2
     3     3     3     4     4     4
     3     3     3     4     4     4
>> size(A)%A维度2行2列
ans =
     2     2
>> size(M)%M维度3行4列
ans =
     3     4
>> E=[]%建立一个空矩阵,存储接下来每次循环的数值
E =
     []
>> E=[E,randi([1,6])]
E =
     4
>> E=[E,randi([1,6])]
E =
     4     5
>> E=[E,randi([1,6])]
E =
     4     5     5 

4.4 向量运算和矩阵运算

>> T(:,:,1)=M %T的第一页是M的所有行和所有列
T =
     3     2     9     3
     7     2     4     7
     6     5     6     3
>> T(:,:,2)=randi([1,9],[3,4]) %设置T的第二页是1-9之间3行4列的随机矩阵
T(:,:,1) =
     3     2     9     3
     7     2     4     7
     6     5     6     3
T(:,:,2) =
     5     9     2     3
     7     5     3     8
     9     2     8     3
%一直设置到T的第五页,则建立了一个三维的数组
>> T(:,:,5)=randi([1,9],[3,4])
T(:,:,1) =
     3     2     9     3
     7     2     4     7
     6     5     6     3
T(:,:,2) =
     5     9     2     3
     7     5     3     8
     9     2     8     3
T(:,:,3) =
     9     3     4     5
     4     6     8     9
     2     5     6     3
T(:,:,4) =
     7     6     5     2
     7     1     8     6
     4     1     9     5
T(:,:,5) =
     1     8     2     6
     4     3     6     7
     2     5     3     7
>> size(T) %这时T的维度就是3行4列5页
ans =
     3     4     5
>> whos
  Name             Size             Bytes  Class     Attributes
   T                3x4x5              480  double 
>> numel(T) %T的元素个数是60
ans =
    60
    
    
>> v=randi([-5,5],[1,4]) %范围是-5到5的1行4列的矩阵
v =
    -1    -5    -3     5
>> abs(v) %对每个元素取绝对值
ans =
     1     5     3     5
>> sign(v) %返回每个数字的符号
ans =
    -1    -1    -1     1
>> min(v) %最小值
ans =
    -5
>> max(v) %最大值
ans =
     5
>> sum(v) %求和
ans =
    -4
>> prod(v) %求积
ans =
   -75
>> cumsum(v) %cumulative sum逐渐扩大求和的范围。-1是第一个元素的和,-6是前两个元素的和,-9是前三个元素的和,-4是前四个元素的和
ans =
    -1    -6    -9    -4
>> cumprod(v) %cumulative product逐渐扩大求积的范围。-1是第一个元素,5是前两个元素的积,-15是前三个元素的积,-75是前四个元素的积
ans =
    -1     5   -15   -75
>> cummax(v) %cumulative maximum依次计算前几个元素的最大值
ans =
    -1    -1    -1     5
>> M
M =
     3     2     9     3
     7     2     4     7
     6     5     6     3
>> min(M) %对每一列求最小值
ans =
     3     2     4     3
>> max(M) %对每一列求最大值
ans =
     7     5     9     7   
  
  
>> diff([1 4 7 8 3]) %different求前后元素的差值
ans =
     3     3     1    -5
     
>> [1 4 7 8 3]*3%矩阵和标量的运算
ans =
     3    12    21    24     9
>> [1 4 7 8 3]+1
ans =
     2     5     8     9     4
    
    
四则运算见第一天的矩阵操作

4.5 逻辑向量和逻辑矩阵

>> v=rand(1,5)
v =
    0.4427    0.1067    0.9619    0.0046    0.7749
>> v>0.5 %返回逻辑矩阵,比较每个数字和0.5的大小
ans =
  1×5 logical 数组
   0   0   1   0   1
>> u=v>0.5 %将逻辑值赋给u
u =
  1×5 logical 数组
   0   0   1   0   1
>> v(u) %返回逻辑值是1时对应的v中的值
ans =
    0.9619    0.7749
>> v(v>0.5) %返回v中所有大于0.5的数字
ans =
    0.9619    0.7749
    
    
>> vec=[5 9 3 4 6 11] %赋值
vec =
     5     9     3     4     6    11
>> v=logical([0 1 0 0 1 1]) %将默认的double类型的数组转化成逻辑型的数组
v =
  1×6 logical 数组
   0   1   0   0   1   1
>> vec(v) %返回逻辑值是1时对应的vec中的值
ans =
     9     6    11
     
     
>> log_true=ones(3,4,'logical') %3行4列的1矩阵转换成逻辑型
log_true =
  3×4 logical 数组
   1   1   1   1
   1   1   1   1
   1   1   1   1
>> v=logical([0 1 0 0 1 1]) %将默认的double类型的数组转化成逻辑型的数组
v =
  1×6 logical 数组
   0   1   0   0   1   1
>> any(v) %v中有一个为真,逻辑结果就是1
ans =
  logical
   1
>> all(v) %v中所有的都是真,结果才是1,否则是0
ans =
  logical
   0
>> R=rand(50,50) %产生50*50的随机矩阵
>> any(R<0.001) %R<0.001产生50*50的逻辑矩阵,
ans =
  1×50 logical 数组
  1 至 22 列
   0   0   0   0   0   0   0   0   0   0   0   0   1   0   0   0   0   0   0   0   0   0
  23 至 44 列
   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   1   0   0   0   0
  45 至 50 列
   0   0   0   1   0   0
   
   
>> R=rand(1,10)
R =
  1 至 8 列
    0.8558    0.6708    0.5236    0.2988    0.7040    0.3816    0.5677    0.8879
  9 至 10 列
    0.8429    0.8988
>> v=R>0.5
v =
  1×10 logical 数组
   1   1   1   0   1   0   1   1   1   1
>> find(v) %选择出逻辑值是1对应的位置
ans =
     1     2     3     5     7     8     9    10
>> min(find(v)) %找出第一次真值出现的位置
ans =
     1
>> find(v,1,'first') %找出第一次真值出现的位置
ans =
     1
>> find(v,2,'first') %找出前两次真值出现的位置
ans =
     1     2
     
     
>> v1=[1 2 3 4]
v1 =
     1     2     3     4
>> v2=[1 2 3 4]
v2 =
     1     2     3     4
>> v1==v2
ans =
  1×4 logical 数组
   1   1   1   1
>> all(v1==v2)
ans =
  logical
   1
>> isequal(v1,v2)
ans =
  logical
   1
   
>> vec=[11 -5 33 2 8 -4 25]
vec =
    11    -5    33     2     8    -4    25
>> find(vec<0) %找出小于0的位置
ans =
     2     6
>> vec(find(vec<0))=[] %删掉小于0的位置对应的数
vec =
    11    33     2     8    25
>> vec(vec<0)=[] %得到同样的结果
vec =
    11    33     2     8    25
   
   
>> rng(0) %重新设置随机生成器,逻辑种子成为0
>> V=randi([0,1],[1,1000]); %生成行数是1列数是1000的 0和1的整数 数组
%关心什么时候0后面接着一个1,1后面接着一个0,要对数字进行减法。以前十个整数为例,计算后一个和前一个的差
>> V(1:10)
ans =
     1     1     0     1     1     0     0     1     1     1
>> diff(V(1:10)) %9个数字
ans =
     0    -1     1     0    -1     0     1     0     0
>> find(diff(V(1:10))==-1) %找出值是-1的位置,是原来10个数组中第2个和第5个1后面接着一个0
ans =
     2     5
>> find(diff(V(1:10))==1) %找出值是1的位置,是原来10个数组中第3个和第7个0后面接着一个1
ans =
     3     7
>> size(diff(V)==1) %diff(V)是1000个数字与前一个数字做减法,结果会有999个数字。diff(V)==1做逻辑判断,会有999个数字。用size求数组的行和列的值,是1行999列
ans =
     1   999
>> numel(diff(V)==1) %共999个数
ans =
   999
>> sum(diff(V)==1) %0后面接着一个1 这个事件发生了多少次
ans =
   243
   
   
>> U=randi([0,2],[1,1000]); %生成行数是1列数是1000的 0到2的整数 数组
%关心什么时候1后面接着一个2,以前十个整数为例
>> U(1:10)
ans =
     1     1     2     0     1     1     1     0     0     1
>> V1=U(1:end-1); %以前十个数字为例,即V1=[1 1 2 0 1 1 1 0 0]
>> V2=U(2:end);   %以前十个数字为例,即V2=[1 2 0 1 1 1 0 0 1]
>> sum(V1==1 & V2==2) % V1=1 且 V2=2时的位置算是逻辑值1,求和。另外,向量的 且 是&
ans =
   119

4.6 矩阵乘法+变量的输出和显示

4.6.1 矩阵乘法

>> N1=randi([1,9],[3,4]) %范围是1到9,3行4列的整数矩阵
N1 =
     7     2     3     6
     9     3     9     2
     3     4     1     8
>> N2=randi([1,9],[4,3]) %范围是1到9,4行3列的整数矩阵
N2 =
     2     1     3
     5     2     9
     9     4     7
     4     4     9
>> N1*N2
ans =
    75    47   114
   122    59   135
    67    47   124
>> N0=randi([1,9],[4,4])
N0 =
     4     8     8     3
     9     3     6     3
     1     9     8     6
     6     7     3     8
>> N0*N0
ans =
   114   149   153   108
    87   156   147    96
   129   149   144   126
   138   152   138   121
>> N0^2
ans =
   114   149   153   108
    87   156   147    96
   129   149   144   126
   138   152   138   121
>> N0.^2 %对于数字的2次方
ans =
    16    64    64     9
    81     9    36     9
     1    81    64    36
    36    49     9    64
    
    
>> V1=randi([1,9],[1,3])
V1 =
     8     4     4
>> V2=randi([1,9],[1,3])
V2 =
     6     7     7
>> V1.*V2 %点乘是对应位置相乘
ans =
    48    28    28
>> %V1=[a1,b1,c1] V2=[a2,b2,c2] 内积是 a1*a2+b1*b2+c1*c2
>> sum(V1.*V2)
ans =
   104
>> V1*V2' %求内积,转置的优先级比乘法高
ans =
   104
>> cross(V1,V2) %差积
ans =
     0   -32    32

4.6.2 常用矩阵

>> hilb(3)
ans =
    1.0000    0.5000    0.3333
    0.5000    0.3333    0.2500
    0.3333    0.2500    0.2000
>> hilb(5)
ans =
    1.0000    0.5000    0.3333    0.2500    0.2000
    0.5000    0.3333    0.2500    0.2000    0.1667
    0.3333    0.2500    0.2000    0.1667    0.1429
    0.2500    0.2000    0.1667    0.1429    0.1250
    0.2000    0.1667    0.1429    0.1250    0.1111
>> pascal(5)
ans =
     1     1     1     1     1
     1     2     3     4     5
     1     3     6    10    15
     1     4    10    20    35
     1     5    15    35    70
>> magic(4)
ans =
    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1
>> M=randi([1,9],[4,4])
M =
     4     3     3     9
     8     5     5     2
     2     8     4     3
     6     2     8     7
>> find(M==2) %找到M中元素是2对应的线性位置
ans =
     3
     8
    14
>> [I,J]=ind2sub(size(M),find(M==2)) %将线性位置转化成(3,1)(4,2)(2,4)存储在IJ中,这里面,ind2sub是函数,size(M)是固定的 矩阵的大小
I =
     3
     4
     2
J =
     1
     2
     4

选中行数 ctrl+R是注释,ctrl+Z是撤销

4.6.3 第一个编码,求圆面积

radius=5; %半径是5
area=pi*radius^2; %求面积
%第一种方法
disp(['the area of the disc is ' num2str(area)]); %输出
%运行,输出结果是
>> test
the area of the disc is 78.5398
​
%第二种方法
fprintf(['the area of the disc is %f \n',area]); %将后面的第一个数以浮点数输出放在%f的位置 \n另起一行,运行,输出结果是
>> test
the area of the disc is 78.539816
%若%f换成%d,则是以科学计数法的形式显示出来
>> num2str(pi,3) %保留3位有效数字
ans =
    '3.14'
>> num2str(pi) %通常情况下有5位数字
ans =
    '3.1416'
>> num2str(area,8) %保留8位有效数字
ans =
    '78.539816'
>> char(area)
ans =
    'N'
>> syms area
>> char(area)
ans =
    'area'
>> A=eye(3)
A =
     1     0     0
     0     1     0
     0     0     1
>> A=eye(3)/3
A =
    0.3333         0         0
         0    0.3333         0
         0         0    0.3333
>> A*inv(A) %inv(A)是A的逆
ans =
     1     0     0
     0     1     0
     0     0     1
>> inv(A)
ans =
     3     0     0
     0     3     0
     0     0     3
>> B=eye(3)*3
B =
     3     0     0
     0     3     0
     0     0     3
>> A\B %等于inv(A)*B 即A的逆乘以B 
ans =
     9     0     0
     0     9     0
     0     0     9
>> A/B %等于A*inv(B) 即A乘以B的逆
ans =
    0.1111         0         0
         0    0.1111         0
         0         0    0.1111

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值