数学建模实验1

本文详细介绍了MATLAB中的矩阵运算,包括矩阵的创建、提取、修改、删除及各种运算符的使用。同时,讲解了如何进行数组的对应元素操作、标量运算以及变量的数据类型管理。此外,还提供了基本的输入输出操作函数和一些常用函数的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(第二次数学建模课——2020.2.27)

MATLAB语言的基本语法

A=[1 2 3; 4 5 6; 7 8 9];%变量A存储矩阵A
B=[2 0 3;4 1 6; 0 5 2]; %变量B存储矩阵B
C=A*B; %变量C为矩阵A与矩阵B的乘积.

  1. 创建矩阵可用方括号[ ],矩阵的不同行可用分号分隔,同一行元素用空格分隔。
  2. 矩阵乘法运算符用“*” ;
  3. 赋值语句用“=”;
  4. 注释语句,用%开头。
    注:注意点乘是两个矩阵对应位置相乘,直接乘才是矩阵的乘法,也就是行乘列。

变量名的命名规则
(1) 必须以字母开头
如,bookname, rank
(2) 区分大小写
如,bookname, Bookname是不同的变量
(3) 可由字母、数字、下划线组成
变量名=函数名(输入参数列表)
[变量名列表]=函数名(输入参数列表)
[V1,V2,V3]=myfun(M1,M2)
一个语句可以只有表达式,系统自动将表达式的结果赋值给MATLAB内部变量 “ans”。
5. 语句分隔符: 分号或逗号;
6. 语句的末尾不使用分号时,系统会显示执行结果。

clc:清除命令窗口中的内容,但不会清除工作空间里面的内容。
clear:清除工作空间里面的内容。
who:列出当前工作空间所有变量名称
whos:列出当前工作空间所有变量名称更多信息。

数组的创建与使用

创建数组

• 1. 使用方括号
• 同一行的元素用“空格或逗号”分隔
• 不同行的元素用“分号或换行”分隔
• 2. 冒号操作符
• 用于创建行向量 a:step:b 其中a:b等同于a:1:b
• a为起始值,step为增量,b用于判断向量终点值.
• 示例:
x=1:3 表示x=[1 2 3],增量默认为是1
x=8:-2:1 表示x=[8 6 4 2]
x=1:2:6 表示x=[1 3 5]
• 3. linspace(a,b,n)
• n-1等分区间[a, b]的节点组成的行向量(含区间端点a, b)
x=linspace(1,3,3) x=[1 2 3]
• 4. 拼接*
• 示例格式1:[A B] 横向拼接要求A,B行数相同,
• 示例格式2:[A; B] 纵向拼接,要求A,B列数相同.
• 示例:z=[rand(2,3), rand(2,2) ]
• 5. 空矩阵 [ ]
• 示例:a=[ ]
6. 调用函数创建
a = zeros(m, n)
a = ones(m, n) 产生一个m行、n列的元素全为1的矩阵
a = eye(m, n)

提取和修改数组中的元素

• 通过数组下标访问:
(1)下标为大于等于1 的整数;
(2)下标不能越界
常用语法:x(m),x(m,n),x(a: b:c),x([a b c d])
• 获取子阵:x([2,3,4],[1,4,9])
• 获取某一行:x([2,3] ,: )
• 获取某一列:x(:,[3,2])
数组名(: )——取数组中所有元素组成列向量
修改元素:用赋值语句修改。如果赋值语句右侧不是一个标量,则要求赋值语句两侧表示的数组维数要相同,否则造成维数不一致的错误。
参考用法1: A(i,:)=B(k,:)
参考用法2: A([1 2],:)=V

删除数组元素操作

• 操作方式:将空矩阵赋值给相应子阵达到删除目的。
• 用法:
A(i1:i2, : ) = [ ] %删除A由i1:i2指定的行
A(:, j1:j2) = [ ] %删除A由j1:j2指定的列

end在存取数组元素方面的特殊用法

用法:end在下标表达式中表示最后一个下标值
• 如果end出现在一个向量的下标中,则表示向量的元素个数。如果end出现在一个矩阵的行下标位置,则表示矩阵的行数。
• 如果end出现在一个矩阵的列下标位置,则表示矩阵的列数。
• 其他例子:
• 操作向量示例
t = rand(1,10);
x1 = t(1:end-1) %取第1个-倒数第2个
x2 = t(end-2:end)%取倒数第3个-倒数第1个
• 操作矩阵示例
A = rand(3)
B = A(1:end-1, : )%取A的第1行-倒数第2行C = A(:, [2:end]) %取A的第2列-倒数第1列
*注意rand(n)出来时一个方阵。

运算符

注意 :算数>关系>逻辑>赋值
矩阵的运算
矩阵转置 B. ’ 矩阵共轭转置 B’(含有虚部是时不能用)
• 矩阵加减:A+B,A-B,A与B维数相同或其中之一为标量
• 矩阵相乘:A*B, A与B为矩阵或其中之一为标量
• 矩阵左除:A\B, 当A为方阵表示: A-1B
• 矩阵右除:A/B, 当B为方阵表示 AB-1,或B为标量
• 矩阵幂: A^n,A为方阵
• inv(A):矩阵求逆
数组对应元素操作运算符 . ./ .\ .^*
• 数组对应元素计算:
• 数组相乘:C=A.*B
• 数组右除:C=A./B;
• 数组左除:C=A.\B
• 数组幂:C=A.^B
• 要求:A, B同维数或其中之一为标量
标量之间的运算符
sqrt(): 开根号
关系运算符
注意一下==是等于和~=是不等于
逻辑运算符
• 与(and) &
• 或(or) |
• 非(not) ~

MATLAB变量的数据类型

• 主要的数据类型:double char sym struct cell
• a=rand(3); b=‘Li San’;%a为double型,b为char型
• syms x, y=1 + x^2 %x,y为sym类型;对y赋值的语句含符号对象
• F.name=‘li San’, F.birth=1999,
F. src=rand(3)%F为struct型

查看变量类型

使用函数class
用法:class(变量名)
该函数返回变量的数组类型的char型数组,如 ‘double’, ‘char’。

cell数组基本用法

创建数组用法:
a=cell(m,n)
存取cell数组用法示例:
a{i} i为下标
a{i,j} i,j分别为行、列下标
特点:一个cell数组中的元素的类型可以互不相同

基本输入与格式化输出操作函数

基本输入与格式化输出操作函数
• input 输入函数
• disp 显示数组内容函数
• sprintf 将数组内容格式化为字符串
• 示例:第一种用法:input(提示信息字符数组)用于输入一般类型数据
• g=input('输入您的成绩: ‘)
• 运行输出:
• 输入您的成绩: 95
第二种用法:input(提示字符串, ‘s’)用于输入字符数组(含第2个参数’s’)
• name=input('输入您的姓名: ', ‘s’)
• 运行输出:
• 输入您的姓名: Li San
显示数组的元素
• 数组显示函数disp(变量名)
• 特点:显示数组内容,但不输出变量名
• 多用于调试程序时显示数组内容
• 示例:
a=rand(1,3);
disp(a)
格式化输出函数sprintf
• 功能:将数据格式化输出为字符串
• 用法:str =
sprintf(formatSpec,A1,A2,…,An)
• 将数组A1,A2,…,An按照参数formatSpec格式化为字符串赋给str.
%d 格式化整数
%c 格式化单个字符
%f 格式化浮点数
%s 格式化字符数组
百分号符号字符后可以加个整数, 用以限定输出化为字符串的长度,例如: %5d, %5s。

常用函数

一、求和函数sum
• s=sum(v) 求向量v中元素的和**(当不是一行或一列的时候,相当求每一列的和,生成一个行向量)**
• s=sum(A,1) 或s=sum(A) 求矩阵A中每列的和,返回成1个行向量
• s=sum(A,2) 求矩阵A中每行的和,返回成1个列向量

二、求平均值mean
• s=mean(v) 求向量v中元素的平均值
• s=mean(A,1) 或s=mean(A) 求矩阵A中每列的平均值,返回成1个行向量
• s=mean(A,2) 求矩阵A中每行的平均值,返回成1个列向量
三、求最大值max,求最小值min
用法:
[v, I]=max(x)
• 如果x为向量,v为向量中的最大元素;I为最大元素在x中的下标。
• 如果x为矩阵,v为每列的最大元素组成的行向量,I则为每列最大元素的行下标组成的向量。
[v, I]=min(x) 同理
四、length和size
length(x)
• 如果x为向量,则返回x的元素个数;
• 如果x为矩阵,则返回矩阵x行数和列数的最大值.
size(x)
• 如果x为向量、矩阵,则返回行数、列数组成的行向量。
五、排序函数sort
[B, I]=sort(v) 对向量v中元素排序,B为按递增排序后的元素;I为排序后数组B中的元素在原数组v中的位置下标.
按升序排列:
a=[1 5 6 7 4 9]
v1=sort(a)
v1_c=sort(a, ‘ascend’) %升序排列
按降序排列:
a=[1 5 6 7 4 9]
v=sort(a, ‘descend’) %降序排列
运行输出:
a = 1 5 6 7 4 9
v = 9 7 6 5 4 1

a=[1 5 6 7 4 9]
[b,c]=sort(a, ‘descend’) %降序排列
a =1 5 6 7 4 9
b = 9 7 6 5 4 1
c = 6 4 3 2 5 1
六、查找函数find
• find函数用于查找数组中的非零元素位置、元素值.
• 结合逻辑表达式可以返回所需要元素的位置下标.

matlab矩阵编号是竖着数

x =

 1     5     9
 2     6    10
 3     7    11
 4     8    12

z=x([1 3 5])

z =

 1     3     5                                                                 

——2h12min

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值