MATLAB台大郭彦甫老师课程笔记:第一课:基本操作与矩阵输入

核心思想:将MATLAB当成计算机。

ln就是nature log的意思,直接用 log:表示以e为底数
log10:表示以10为基底。同理,log2:表示以2为基底

matlab会将上一步计算的结果储存在ans中。

变量指定:左边是变量,右边是数值。(将右边的指定给左边)

变量指定时,区别大小写。不能以数值开头一个变量,但整个变量表达式里可以有数值。

inf:表示无穷

>> pi

ans =

    3.1416
>> format long
>> pi

ans =

   3.141592653589793
>> format rat   %将某个无理数用分数表示
>> pi

ans =

     355/113

在指令后面加分号:表示不显示运算结果

who:显示所有变量区的变量
whos:显示所有变量去变量的信息(变量名、变量大小、所占字节数)

如何输入一个向量和矩阵?
使用 [ ] 输入;
如下例:

>> a=[1 2 3 4] %行向量

a =

     1     2     3     4


>> b=[1;2;3;4]  %列向量

b =

     1
     2
     3
     4

下面是一些基本的matlab对矩阵的操作:

>> a*b
%%  1*1+2*2+3*3+4*4   
% 1*4的行矩阵和4*1的列矩阵直接相乘,所得结果为一个数
ans =

    30

>> b*a
%% 外积,矩阵相乘
% 4*1的列矩阵和1*4的行矩阵直接相乘,所得结果为一个4*4的方阵
ans =

     1     2     3     4
     2     4     6     8
     3     6     9    12
     4     8    12    16

矩阵的定义和对矩阵数据的取出:
矩阵数据的排序是从第一列开始竖着数依次为第一个元素、第二个元素…

>> A=[1 21 6;5 17 9;31 2 7]
%% 同一行用空格隔开,换行用;隔开
A =

     1    21     6
     5    17     9
    31     2     7

>> A(1,2)
%% 调A的第一行第二列的数
ans =

    21

>> A(2)
%% 竖着数第二个
ans =

     5

>> A([1 3 5])
%% 一次性取出A的第一个、第三个、第五个元素
ans =

     1    31    17

>> A([1 3;1 3])
%% 取出A的第一个和第三个元素使其为新矩阵的第一行;
%% 再次取出A的第一个和第三个元素使其为新矩阵的第二行
ans =

     1    31
     1    31

>> A([1 3],[1 3])
% 逗号前面表示row(行,逗号后面表示column(% 逗号前面表示取出A的第一个row和第三个row
% 逗号后面表示取出A的第一列和第三列
% 所以这句就是取出两者的重合区域
ans =

     1     6
    31     7

更改矩阵内的元素更改上面A矩阵中第一行第二列&第三行第二列的元素:

>> A([1 3],2)=[76 0]

A =

     1    76     6
     5    17     9
    31     0     7

更改矩阵A中右上角2*2的子矩阵中的元素:

>> A([1 2],[2 3])=[0 0;0 0]

A =

     1     0     0
     5     0     0
    31     0     7
>> A([1 2],:)
% 取A的第一行和第二行,全部列(因为用了:,这个可以参见下面的,表示全部的意思)
% 这句只是取出想要的,实际目的是把整个A变成这样
ans =

     1     0     0
     5     0     0

% 改变A
>> A(3,:)=[]
% 将A的第三行置空
A =

     1     0     0
     5     0     0     

对字母表的字符进行操作:

>> str = 'a':2:'z'
% 和等差数列的用法一样:从a到z每隔两个取出一个字符,并组成一个新的字符串。
str =

    'acegikmoqsuwy'

用上面取字符串的方法快速定义一个矩阵:

>> B=[1:5 ; 2:3:15 ; -2:0.5:0]
% 第一行放第一个operator,第二行放第二个,第三行放第三个
B =

    1.0000    2.0000    3.0000    4.0000    5.0000
    2.0000    5.0000    8.0000   11.0000   14.0000
   -2.0000   -1.5000   -1.0000   -0.5000         0

增广矩阵:

>> A = [1 2;3 4];
>> B = [9 9;9 9];
>> F=[A B];  %将两个矩阵按行拼在一起(前提是两个矩阵的行数相等)

F =

     1     2     9     9
     3     4     9     9

>> F=[A;B]
%将两个矩阵按列拼在一起(前提是两个矩阵的列数相等)
F =

     1     2
     3     4
     9     9
     9     9

矩阵和向量的四维运算:

A*B:就是矩阵的乘法计算:A的row乘B的column再相加
A.*B:表示A的第一个元素和B的第一个元素相乘,最后得到结果的第一个元素。
A^a:示例:A^2就表示A*A;
A.^a:示例:A.^2表示A中的每一个元素都取平方
A' :矩阵转置

特殊矩阵:
linspace(x1,x2):从x1到x2间等间隔取100个元素
eye(n)  
zeros()

max函数:

>> A = [1 2 3;0 5 6;7 0 9]

A =

     1     2     3
     0     5     6
     7     0     9

>> max(A)
% 取的是A的每一个列的最大值
ans =

     7     5     9

>> max(max(A))
% 取出整个矩阵的元素最大值
ans =

     9          
>> A = [1 2 3;0 5 6;7 0 9]

A =

     1     2     3

同理,sum取出的也是A 每一列的和

>> sum(A)

ans =

     8     7    18
% 全部的和当然就可以用sum(sum(A))

>> sort(A)
% 同理,sort也是排序每一列的元素(从小到大)
ans =

     0     0     3
     1     2     6
     7     5     9

>> sortrows(A)
% 默认按照第一列元素进行排序,然后把整行整行的元素重排
ans =

     0     5     6
     1     2     3
     7     0     9

>> size(A)
% 表示3个行,3个列
ans =

     3     3

>> length(A)
% 就只有一个长度的维度
ans =

     3

>> find(A==5)
% 找出A中数值为5的位置在哪里。
ans =

     5
  • 3
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值