当前位置: 首页 > news >正文

【数学建模】MATLAB快速入门

文章目录

  • 1. MATLAB界面与基本操作
    • 1.1 MATLAB的基本操作
  • 2. MATLAB字符串和文本
    • 2.1 string变量
    • 2.2 char变量
  • 3. MATLAB的矩阵运算

1. MATLAB界面与基本操作

MATLAB界面与基本操作

初始界面:
初始界面
刚开始的界面只要一个命令行窗口,为了使编辑界面出现我们需要新建一个文件,注意存放文件的文件夹一定要是英文命名,新建文件后打开就会出现编辑器。新建完文件后,点击左上角的新建脚本就会弹出编辑器了。
编辑器

1.1 MATLAB的基本操作

  1. 在命令行中输入指令
  • 输入完成指令后,敲回车就执行。
  1. 在脚本文件中编写程序后运行
  • 脚本文件,就是存放代码的文件,尾缀.m
    脚本文件

当你在脚本文件中写完代码后,如果你要运行就要先保存一次文件。运行后结果会显示在下方的命令行窗口,同时右侧的工具区也会显示变量的值,有点类似vs2022调试后的监视窗口

  • 实时脚本文件,可插入图片,运行时会把结果显示在代码旁边,很适用。
    实时编辑器

点击左上角的新建里面就会有一个实时脚本文件,运行时会把结果显示在代码旁边,不会再下命令行中显示。

  1. 在函数文件中编写程序,然后在脚本文件中调用
  • 函数文件相当于做好一个工具,以后到了需要的时候直接调用就可以了,尾缀也是.m
  • 有固定的格式,例如:function[sigma,theta,x,y,final_res] = simple(f,a,b,index)
  1. 符号
  • 注释:%后面写的内容都是注释,类似于C/C++的//或者python的#
  • 分号:写完一行代码,该行末尾加个分号,会被执行计算,但不会在命令行窗口显示输出
  • 命令行输入:clc(清空命令行),clear(清空工作区),按上方向键调用历史命令,有点类似Linux操作。

在实时脚本文件中,通过运行节可以实现代码的分段运行。
实现代码的分段运行

2. MATLAB字符串和文本

2.1 string变量

  1. 双引号(英文的)
    当我们要定义一个字符串变量时,可以写
t = "hello world"

和C语言的语法也没啥区别。
如果字符串中本质需要右双引号,这就和C语言的处理方法不同了,我们需要加上双重双引号

t = "hello ""haha"" world"

这样的话,t就会等于hello "haha" world
2. 字符串和数组的区别
tmp = 1+1,运行结果是2
tmp = “1+1”,运行结果是1+1
3. 字符串添加数据

a = t+"haha"

矩阵存储多个元素

b = ["a","bb","ccc","dddd"]

演示:
矩阵存储多个元素

2.2 char变量

  1. 单引号
    字符串表示的数据并不对于到文本,例如:
tmp = 'hellomatlab'

char变量

运行出来的结果是1X11,如果是字符串这里会是1X1。也就相当于这是一个字符数组。

如果字符串本身右单引号,则在单引号位置使用双重单引号
如果需要选择第4个字符:

s = tmp(4)
%s就会等于l

MATLAB的数组下标是从1开始的,同时也不能越界访问。

  1. 添加内容
    使用方括号把多个字符数组串联起来
tmp2 = [tmp,'haha']

注意:双引号得到是是1个string变量,单引号得到是是多个char变量

3. MATLAB的矩阵运算

  1. 创建一个1行6列的矩阵:
a = [1 3 5 7 9 11]
  1. 对矩阵中的每个元素都加上3
b = a+3

正常在线性代数的课程都会讲,矩阵的相加只能是同类型的矩阵,所有这里MATLAB会将3变一个充满的3的和a同类型的矩阵相加。
演示:
演示

  1. plot函数绘图,以索引为横坐标,索引就是该数组在矩阵里的第几个类似于数组下标
plot(b)
grid on %在图片中添加网格线

演示

  1. 多维矩阵的创建,以空格或逗号分割同一行元素,分号分割各行.
    常见运算:转置、取逆、求特征值会特征向量
a = [3 2 1;2 4 1;3 9 2]
b = a' %求转置
[d,v] = eig(a)  %求特征值和特征向量
e = inv(a) %求逆矩阵
f = a*e %求证,逆矩阵乘矩阵会得到1

演示:
演示

  1. 矩阵乘法,和矩阵点乘
c = a*b  %矩阵乘法
e = a.*b %矩阵点乘,对应元素相乘

演示:
演示
见下篇文章
matlab

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 深度学习的数学之魂:传统机器学习的超越者
  • 深度学习基础—学习率衰减与局部最优问题
  • Java-Web面试题汇总
  • XML Schema 复合元素 - 仅含文本
  • Python实现水果忍者(开源)
  • Openstack 所需要的共享服务组件及核心组件
  • 代码随想录:动态规划6-10
  • TCP/IP 协议及其协议号
  • Webrtc之SDP协议
  • 20221元组
  • 在阿里云上部署 Docker并通过 Docker 安装 Dify
  • Linux (Ubuntu) conda:未找到命令报错处理
  • 大模型预训练与微调之间的关系
  • css渐变边框的两种方案
  • Sql Server 触发器中的临时表
  • 30天自制操作系统-2
  • Android框架之Volley
  • angular2 简述
  • angular组件开发
  • golang中接口赋值与方法集
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • storm drpc实例
  • Windows Containers 大冒险: 容器网络
  • 免费小说阅读小程序
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • AI算硅基生命吗,为什么?
  • 阿里云ACE认证之理解CDN技术
  • ​​​【收录 Hello 算法】9.4 小结
  • ​【经验分享】微机原理、指令判断、判断指令是否正确判断指令是否正确​
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #QT(TCP网络编程-服务端)
  • $().each和$.each的区别
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (备忘)Java Map 遍历
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (六)Flink 窗口计算
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (四)图像的%2线性拉伸
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (转)视频码率,帧率和分辨率的联系与区别
  • (转载)利用webkit抓取动态网页和链接
  • ******之网络***——物理***
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .net 反编译_.net反编译的相关问题
  • .NET 依赖注入和配置系统
  • .NET 指南:抽象化实现的基类
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .net8.0与halcon编程环境构建
  • .NET简谈设计模式之(单件模式)