一:数学建模之MATLAB基础知识

1.1Matlab系统环境

1.命令行窗口
换行命令(续行符) … 回车
clc 清屏;
clear 清除变量
在这里插入图片描述

1.2Matlab数值数据

命令;format 格式符(不影响出储存)
常用数学函数:
在这里插入图片描述
在这里插入图片描述
fix,ceil,round函数
在这里插入图片描述
rem取余数
在这里插入图片描述

isprime(n)为求素数函数,是素数返回1;否则返回0
find()函数返回的是位置
在这里插入图片描述

1.3变量及其操作

区别;预定义变量
在这里插入图片描述
变量删除与修改:
who 与 whoms 命令
在这里插入图片描述
在这里插入图片描述

1.4矩阵及其表示

在这里插入图片描述
冒号表达式:
格式: e1:e2:e3(产生向量)
e1为初始值,e2为步长,e3为终止值
在这里插入图片描述
步长为1 可以省略
linspace函数
在这里插入图片描述
结构矩阵和单元矩阵
(1):结构矩阵
在这里插入图片描述
(2)单元矩阵(大括号)
在这里插入图片描述
1.5矩阵元素的引用
在这里插入图片描述
如果下表越界自动补充为0
在这里插入图片描述
这里的序号和一般的c语言数组不太一样,这里是按列来数下标.
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
利用空矩阵进行矩阵的增删:
例子;

>>A=[1,2,3,0,0;7,0,9,2,6;1,4,-1,1,8]
>>A(:,[2,4])=[]   //删除第2,4列的元素
>A =

     1     2     3     0     0
     7     0     9     2     6
     1     4    -1     1     8


A =

     1     3     0
     7     9     6
     1    -1     8

改变矩阵的形状
reshape(A,m,n):在矩阵总元素保持不变的前提下,将矩阵A重新排成mn的认为的二维矩阵。
在这里插入图片描述1.6MATLAB的基本运算
(1)基本运算
加减:
两矩阵必须是同样的
乘法运算:
列数等于行数,顺序不能颠倒
除法运算:
B/A=B
inv(A)
A/B=inv(A)B(inv 表示逆矩阵)
乘方运算A^2=A
A
点运算; .* ./ .\ .^
(这个相当于行列式)
注意区分
A*B(为线性代数中定义的矩阵乘法。按乘法定义要求必须有矩阵A的列数等于矩阵B的行数)
A.*B(符号数组的乘法,为按参量A与B对应的分量进行相乘。A与B必须为同型阵列,或至少有一个为标量)

A=[1 2 3;4 5 6;7 8 9];B=A;A*B
ans =
    30    36    42   

    66    81    96  

  102   126   150



>> B/A

ans = 

1     0     0   

 0     1     0   

  0     0     1      %矩阵这样做是不行的!!!



>> A.*B
ans =
     1     4     9   

  16    25    36  

  49    64    81


>> B./A
ans =
     1     1     1    

     1     1     1   

    1     1     1

关系运算符;
当比较的两个数是标量时,按大小比较返回0/1(布尔值);
当两个比较的是矩阵的时候,则将元素一一进行比较,返回与原矩阵同型的矩阵。
当比较的是一个标量与一个矩阵时,也是作一比较。返回矩阵
例如;

>> A=[1,2,3;4,5,6;7,8,9];B=[1,5,6;4,5,3;4,5,3]
B =
     1     5     6
     4     5     3
     4     5     3
>> A=[1,2,3;4,5,6;7,8,9]
A =
     1     2     3
     4     5     6
     7     8     9
>> A>=B
ans =
  3×3 logical 数组
   1   0   0
   1   1   1
   1   1   1
>> A=7
A =
     7
>> A>=B
ans =
  3×3 logical 数组
   1   1   1
   1   1   1
   1   1   1
>> 

在这里插入图片描述
逻辑运算;
& ,|,~

求水仙花数

>> m=100:999;
>> m1=rem(m,10);
>> m2=rem(fix(m/10),10);
>> m3=fix(m/100);
>> k=find(m==m1.*m1.*m1+m2.*m2.*m2+m3.*m3.*m3);
>> k

k =

    54   271   272   308

>> s=m(k)

s =

   153   370   371   407

>> 

字符串数据:
在这里插入图片描述
字符串的表示:
1.取第1~5个字符串组成的子字符串。
2.将字符串倒过来从新排序
3.将字符串中的小写字母变成相应的大写字母,其余字符不变。
4.统计字符串中小写字母的个数

>> ch='agerghh4161';
>> subch=ch(1:5)

subch =

    'agerg'

>> revch=ch(end:-1:1)

revch =

    '1614hhgrega'

>> k=find(ch>='a'&ch<='z')

k =

     1     2     3     4     5     6     7

>> ch(k)=ch(k)-32

ch =

    'AGERGHH4161'

>> length(k)

ans =

     7

>> 

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@Rangers

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值