matlab 建模核心用法

news/2024/11/9 20:37:03

matlab 建模核心用法

文章目录

    • (1) 最基础用法
    • (2) matlab 基础函数
    • (3) matlab 文件导入
    • (4) matlab 作图
    • (5) matlab 匿名函数
    • (6) matlab 随机数

 

(1) 最基础用法

(1) 在每一行的语句后面加上分号,表示不显示运行结果。

(2) 多行注释:选中要注释的若干语句,快捷键Ctrl+R。

(3) 取消注释:选中要取消注释的语句,快捷键Ctrl+T。

(4) clear;clc;clear表示清空工作区的所有变量,clc表示清除命令行窗口的所有文本。clear;clc;语句一般放在程序的开头,起到初始化的作用。

(5) 输出和输入函数(disp,input)。

  • 对disp,后面的’;'无所谓加不加。
  • 对input,后面的分号A = input('请输入A:');当加上分号时,不输出A的值,如果不加分号则输出A的值。

(6) matlab合并字符串:

  • strcat(str_1,str_2,...,str_n)。
  • [str_1,str_2,……, str_n][str_1 str_2 …… str_n]
  • 字符串元胞数组是用大括号包起来
    s = {'str_1','str_2' 。。。'str_n'}

(7) 字符串转换函数:num2str(number)将数字转换为字符串。

(8) 提取矩阵中指定位置的元素
假设矩阵为 A A A

  • A(i,j)取指定行和列的一个元素(相当于二维数组,输出的是一个值)。
  • A(i,:)取指定某一行的全部元素,输出的是一个行向量。
  • A(:,j)取指定某一列的全部元素,输出的是一个列向量。
  • A(ia:d:ib,:)取指定的某些行的全部元素 i a , i b i_a,i_b ia,ib 表示起始行和结束行, d d d 代表公差,输出的是一个矩阵。
  • A(:) 取出 A A A 中的所有元素,最后输出一个列向量,因为matlab在底层是以列来存储的。

(9) Matlab中矩阵的运算

  • 两个矩阵之间的乘法*,两个矩阵之间的除法 / A / B A/B A/B 也就相当于 A ∗ i n v ( B ) A*inv(B) Ainv(B) A A A B B B 的逆相乘。
  • 两个形状相同的矩阵之间的对应元素相乘与相除。.* ./
  • 矩阵中的每一个元素乘或除以一个常数使用加点与不加点的都可以。
  • 矩阵中每个元素同时乘方。.^ 注意A^2 ↔ \leftrightarrow A*A

(10) 矩阵与常数的大小判断运算
> == <结果返回一个矩阵,如果对用位置满足条件则为1,否则为0。

(11) 判断语句

if a >= 85  
    disp('成绩优秀')
elseif a >= 60 
    disp('成绩合格')
else
    disp('成绩挂科')
end

(12) 求程序运行时间

tic
程序代码
toc

最后会返回程序运行的时间。

 

(2) matlab 基础函数

(1) sum函数
假设矩阵为 A A A ,向量为 α \alpha α

  • 不管 α \alpha α 是行向量还是列向量,sum(α)都表示 α \alpha α 内所有元素的和。
  • 对矩阵 A A A 所有元素求和:sum(sum(A))或者sum(A(:))
  • 将矩阵的每一列进行求和,最终返回一个行向量:sum(A;1)sum(A)的效果是一样的。
  • 将矩阵的每一行进行求和,最终返回一个列向量:sum(A;2)

(2) size函数的使用
假设矩阵为 A A A

  • 同时返回矩阵 A A A 的行与列
    [r,c]=size(A)
  • 只返回矩阵 A A A 的行
    r=size(A,1)
  • 只返回矩阵 A A A 的列
    c=size(A,2)

(3) repmat函数的使用

  • B=repmat(A,m,n)将A复制 m × n m\times n m×n 块。

(4) Matlab求特征值与特征向量

  • E=eig(A) 直接返回特征值,构成一个列向量。
  • [V,D]=eig(A) 返回特征值与特征向量。注意 D 构成一个对角矩阵,V 的每一列都是与 D 相应的特征值对应的特征向量。

(5) zeros,ones

  • zeros(m,n)产生一个 m × n m\times n m×n 维的全0矩阵。
  • ones(m,n)产生一个 m × n m\times n m×n 维的全1矩阵。

(6) find函数的用法

  • 初级功能:
    A为一个向量,X为一个矩阵
    • 返回向量或矩阵中不为0的元素的位置索引。find(A),对于矩阵A,按列存储方式返回不为0的元素的位置索引。对于[r,c]=find(A)返回每一个不为0的元素的行坐标与列坐标。对于[r,c,v]=find(A)返回行坐标,列坐标和每一个坐标下的值。
    • 返回前k个不为0的元素的位置索引。find(A,k) ↔ \leftrightarrow find(A,k,'first')
    • 返回后k个不为0的元素的位置索引。find(A,k,'last')
  • 中级功能
    • 找A中等于m的元素的索引find(A==m)找到A中前k个等于m的元素的索引find(A==m,k,'first')找到A中后k个等于m的元素的索引find(A==m,k,'last')

(7) magic(n)幻方矩阵。

(8) matlab排序

  • 按每一列排序sort(A,1)
  • 按每一行排序sort(A,2)
  • 按降序排序sort(A,1,'descend'),sort(A,2,'descend')

(9) roundn(x,n):任意位置四舍五入, x x x表示需要四舍五入的数, n n n表示需要在哪位四舍五入 。0个位,1十位 ,2百位,-1小数点后一位。

(10) nargin:使用nargin可以判断函数输入的参数的个数。

    function  test_nargin(a,b)
    switch nargin
        case 2
            disp('2 input arguments')
        case 1
            disp('1 input arguments')
        otherwise
            disp('0 input arguments')
    end

(11) mean(X):求解平均值。

(12) mod(m,n):表示求 m ÷ n m\div n m÷n 的余数。

(13) unique(X):剔除一个矩阵或者向量的重复值,并将结果按照从小到大的顺序排列。

(14) cumsum(X):返回矩阵 X X X 按列叠加后的一个新矩阵。

(15) diag(A):当 A A A 是一个矩阵时,会返回 A A A 的主对角线元素,当 A A A 是一个向量时,会返回一个对角矩阵,向量中的元素依次作为对角线上的元素。

X = diag(v)
v=[1 2 3];
diag(v)
ans =
	1 0 0
	0 2 0
	0 0 3
A=diag(ans)
A=
	1
	2
	3

(16) 重构矩阵 reshape:一定要注意重构是按照列进行的。

  • 将一个向量重构为矩阵

    	A = 1:10;
    	B = reshape(A,[5,2])
    	B = 5×2
    	
    	     1     6
    	     2     7
    	     3     8
    	     4     9
    	     5    10
    
  • 将一个矩阵重构

    A = magic(4)
    A = 4×4
    
        16     2     3    13
         5    11    10     8
         9     7     6    12
         4    14    15     1
    
    B = reshape(A,[],2)
    B = 8×2
    
        16     3
         5    10
         9     6
         4    15
         2    13
        11     8
         7    12
        14     1
    

 

(3) matlab 文件导入

(1) 将EXCEL表中的文件导入Matlab中,然后可以保存成为.mat文件,下次再使用时用load导入.mat文件即可。

 

(4) matlab 作图

  • plot
    ① ① 用法plot(x1,y1,'type',x2,y2,'type')其中type中填线方式,点方式和颜色。
    ② ② type 的类型

    • 线方式:-实线,:点线,-.虚点线,--虚线。
    • 点方式:.圆点,+加号,*星号,xx型,o小圆圈。
    • 颜色:y黄,r红,g绿,b蓝,w白,k黑,m紫,c青。
    • 例如plot(x,y,'r*');

    ③ ③ 标注横纵坐标:xlabel('string'),ylabel('string')
    ④ ④ 对使用的线或点进行标注
    legend(string1,string2,...,stringn,'location','方位')前面的每一个string代表对对应的线或点的描述,后面的方位表示可以将标注框放在figure的哪个位置。
    ⑤ ⑤ 调整线的宽度
    plot(任意, 'linewidth', length) 任意代表生成的任何一个图像,length 表示输入一个数字,表示线的宽度。
    ⑥ ⑥ 画图后不显示坐标轴
    set( gca, 'XTick', [], 'YTick', [] )
    ⑦ ⑦ 进行点的填充色、大小和轮廓线的设置

    'MarkerFaceColor' - 标记填充颜色
    'MarkerSize' - 标记大小
    'MarkerEdgeColor' - 标记轮廓颜色
       plot(x,y,'o','LineWidth',1,...
          'MarkerEdgeColor','k','MarkerFaceColor','r',... 
          'MarkerSize',10); %表示线宽为 1,填充色为红色,边框为黑色,点的大小为 10
    
  • fplot绘制表达式或函数
    ① ① fplot(f)在默认区间 [ − 5 , 5 ] [-5,5] [5,5](对于 x)绘制由函数 $y = f(x) $ 定义的曲线。
    ② ② fplot(f, [xmin xmax] )在指定区间内绘制函数。

  • subplot(m,n,p):将多个图像画到同一个figure中, m , n m,n m,n 表示将整个figure分成 m × n m\times n m×n个小的作图区域, p p p 表示选取第 p p p 个作图区域,注意subplot要在plot前面使用。

  • hold on:在同一张图上做出多个线或点。

  • grid on:在图上打开网格。

  • figurefigure(i)(i=2,3,4)可以打开新的绘图窗口,保证原来的图像不被覆盖。

  • text(x,y,string):在图上坐标为 ( x , y ) (x,y) (x,y) 处标记上字符串 string

  • close(H):关闭画好的 figureH

  • pause(sec) s e c sec sec 填入需要延迟的秒数。

  • axis([x_0 x_1 y_0 y_1]):将坐标轴横坐标范围设置为 (x_0,x_1),将纵坐标的范围设置为 (y_0,y_1)

 

(5) matlab 匿名函数

  • handle = @(arglist) anonymous_function其中handle表示因变量,arglist表示自变量,anonymous_function表示写出的函数表达式。
    ⭐️例如z= @(x,y)sin(x+y)

     

(6) matlab 随机数

  • randi([left,right],m,n):产生均匀分布的随机整数矩阵,整数的范围为 [ l e f t , r i g h t ] [\bf left,right] [left,right] ,矩阵的大小为 m × n m\times n m×n
  • rand(m,n):产生均匀分布的随机数矩阵,数的范围为 [ 0 , 1 ] [0,1] [0,1] ,矩阵的大小为 m × n m\times n m×n
  • a+(b-a)*rand(m,n):产生均匀分布的随机数矩阵,数的范围为 [ a , b ] [a,b] [a,b] ,矩阵的大小为 m × n m\times n m×n
  • normrnd(μ,σ,m,n):产生正态分布的随机数矩阵,均值为 μ \mu μ ,标准差为 σ \sigma σ,矩阵的大小为 m × n m \times n m×n
  • exprnd(num):产生均值为 num 的指数分布随机数,也就是 λ = 1 n u m \lambda=\dfrac{1}{num} λ=num1
  • unifrnd(a,b,m,n):可以输出在 [ a , b ] [a,b] [a,b] 之间均匀分布的随机数组成的 m m m n n n 列的矩阵。
  • randperm(num):生成 1 ∼ n u m 1\sim num 1num 组成的一个随机序列。
  • randsrc(m,n,[alphabet;prob]):表示按照一定的概率生成一组随机数,其中 alphabet 表示可以产生的数字,prob 表示产生各个数字的概率。

http://www.niftyadmin.cn/n/2133352.html

相关文章

linux部分命令的学习

最近接触了Linux&#xff0c;所以就写了一些简单的Linux命令&#xff0c;和大家分享&#xff0c;包括简单命令、文本操作命令、目录操作命令和文本编辑vi的使用。1.简单命令1.echo命令将参数显示到标准输出。$ echo hello word!2.date命令显示或设置系统的日期和时间。&#xf…

SVD matlab图像处理

SVD 图像处理 奇异值分解在图形压缩中的应用 文章目录(1) 奇异值分解(2) 利用 SVD 对原数据进行降维(3) matlab的相关操作1. 对单张图片的处理2. 对文件夹中的图片批量处理3. 视频处理(1) 奇异值分解 AmnUmm∑mnVnnTA_{m\times n}U_{m\times m}\sum\nolimits_{m\times n}V^T_{n…

[PHP] 编译构建最新版PHP源码

获取最新PHP代码git clone https://git.php.net/repository/php-src.git构建编译环境apt-get install build-essential 编译&#xff1a;./buildconf报错autoconf not found&#xff0c;apt-get install autoconf ./configure --help./configure --prefix/tmp/ --disable-all /…

并查集的一般操作 ②

RT 题目描述 明天就是母亲节了&#xff0c;电脑组的小朋友们在忙碌的课业之余挖空心思想着该送什么礼物来表达自己的心意呢&#xff1f;听说在某个网站上有卖云朵的&#xff0c;小朋友们决定一同前往去看看这种神奇的商品&#xff0c;这个店里有n朵云&#xff0c;云朵已经被老板…

数模必备插值拟合

插值与拟合 两者都可用于对较少数据量的补充&#xff0c;但是一般插值用于数据量较少的情况n<30 拟合用于数据量较多的情况 n>30。 文章目录(1)插值与拟合采用的方法1.插值2.拟合(2)具体的代码操作方法1.插值的matlab2.拟合的matlab(1)插值与拟合采用的方法 1.插值 拉格…

Windows+Ubuntu-18.04双系统装机指南

WindowsUbuntu-18.04双系统装机指南 在看了网上很多的指南和教程之后&#xff0c;外加踩了好几个坑&#xff0c;最后终于安装成功&#xff0c;这里做一个记录&#xff0c;免得以后又需要安装。 文章目录(0) 准备工具(1) 准备分区(2) 制作启动U盘(3) 进入BIOS(4) 安装Ubuntu(5) …

规划模型的典型例题

规划模型的典型例题 文章目录(1) 平板装货问题(2) 选修课策略问题问题1问题2(3) 最优组队问题(1) 平板装货问题 有七种规格的包装箱要装到两辆平板车上。包装箱的宽和高是一样的&#xff0c;但厚度t (厘米)和重量w (公斤)是不同的。下表给出了每种包装箱的厚度&#xff0c;重量…

传统多线程开发

Android开发高级进阶 第一章学习 传统多线程开发 概要&#xff1a; 之前的文章里写过了AsyncTask的一些坑&#xff0c;这次就不讲它了&#xff0c;使用传统的 Handler和Message来进行线程的使用&#xff0c;并且第一次添加了CallBack方式的接口进行回调操作 多线程 这概念并不需…