Matlab数学建模工具

调整界面字体大小

在最初的界面,所有的字体偏小。看起来不是很明确,可以调整互交区域或者编辑区域的字体大小。

具体位置如下。

  • 新建一个空的脚本

    • 主页

      • 预设

        • 字体

          • 调整数值(通常来说,十八太大,我们使用十四号字体即可)

注释

在matlab种,注释通常使用 % 来表示

% 我是一行注释,我是单行注释,在我后面的一行字符,统统不算数

什么是互交命令行

在我们的matlab中,存在一个窗口界面,也就是互交命令行。他的作用很大,通常来说。没有很多行测试脚本的情况下,我们直接使用互交命令行即可,在你敲出第一个代码/指令的时候,他就会立马给你一个回馈。

互交命令行窗口

互交命令行发出一行指令后,立马回馈的信息

如果我们感觉互交命令行太乱,即可在指令处输入这一个指令,来清除所有的文本文字。

clc

呢么对应的效果就是如下

空空如也。

我刚刚有提及过工作区的变量,如果工作区变量不需要,或者过多,想要删除部分变量或者删除全部的变量。也是有对应的操作。

% 删除指定的变量,  假设此时我们拥有变量a,和变量b
clear a% 删除全部的变量
clear all

什么是编辑脚本区域(编辑器)

我们如果有很多行代码,来运行一个很大的数值运算(二分查找,冒泡排序,优先选择法等等)一些算法排序。我们肯定不能依靠单一的一行互交来完成任务。呢么我们就存在了一个功能,Script (脚本). 还记得我跟你讲过的Java吗。面向过程编程。由上到下去执行得到最终的结果值。是的,他也是这样的理念。在一个以 .m 结尾的文件里,来书写代码,最后执行得到最终的结果值。

呢么如果我们想要去编辑脚本,就需要先创建脚本,于是乎

如何去创建一个脚本

创建脚本有两种方式,就目前编辑器里最直观的方式来看。

第一种是直接点击新建脚本。但是有几点是需要注意的.

我们会直接得到一个如图所示的 Untitled,在这个时候就可以开始桥写你的代码了,如图。

好,但是或许你留意到了文件名字后面的 * 号。这是什么意思,其实他的意思很简单,不光是这个 * 号,包括你以后在所有代码里遇到文件头部带有 *的,都表示了一个意义,呢就是 文件已经发生变动,但是该文件并没有保存。 我们只需要按住 Ctrl + s 键 进行保存即可。所有的文件保存基本上全是这一个操作。在我们按住ctrl + s键保存后,会弹出一个要保存在哪里的提示。

此时我们可以在bin目录下新建文件夹,然后保存到里面即可,文件名称可以进行更改,在下方蓝色处位置。

数据类型

他也是拥有数据类型的,就跟任何一个语言一样。呢么他的数据类型分为以下几种。

  • 数字
  • 字符与字符串
  • 矩阵
  • 元胞数组
  • 结构体
数字

数字这个概念其实很好理解,也就是我们所用到的所有和 “数” 有关的东西。 浮点数,整数。呢么对应的操作,肯定是离不开最基本的四则运算。也就是我们所说的 + - * / (加减乘除)

他们也是很好理解的。

% 加法
10 + 20
20 + 30
a = 50;
b = 100;
a + b;% 减法
20 - 10
10 - 20
a = 10;
b = 5;
a - b;% 乘法
10 * 2
20 * 1
a = 9;
b = 3;
a * b;% 除法
20 / 2
30 / 3
a = 9;
b = 3;
a / b;

字符与字符串

字符是不是对应char类型啊?单个字符存在。我也不是很理解。我刚看文档一小会。

java

Char c = new Char('a');

matlab

a = 'a'

用最通俗易懂的话来说,字符串就是 Java 的String类的使用而已。此处str为变量。

String str = "我是一个字符串";

matlab也是这样的。只不过没有这个类的定义,符号使用单引号。

str = '我是一个字符串,Hello,World!';

当然了,我去测试了一下,双引号也是可以储存的,但是他们的区别好像是,使用单引号存储的变量,和双引号存储的变量不一样在 包括他们的符号和你书写时使用的单双引号一致。

str = '我是一个字符串。';
存储结果 ----> '我是一个字符串'str2 = "我是一个字符串";
存储结果 ----> "我是一个字符串"

对应图解应该更好理解一些

使用它们输出也是这样的一个区别,暂时先放置。等我了解后在回补。

好了,经过我的一些测试,我发现了一些端倪。

如果我们学过Java,是否还记得,字符对应的数字编码。 ASCII 码。 a对应的数字,是否是97. 没错吧,呢么是什么类型才会有这种情况呢,字符类型。 也就是说上面我们猜对了,他就是和Java的char类型一样。甚至可以进行运算。

ASCII编码

为了证实,我收集了ASCII编码集

Char("32") 空格 SPACE
Char("33") !
Char("34") "
Char("35") #
Char("36") $
Char("37") %
Char("38") &
Char("39") ’
Char("40") (
Char("41") )
Char("42") *
Char("43") +
Char("44") ,
Char("45") -
Char("46") .
Char("47") /
Char("48") 0
Char("49") 1
Char("50") 2
Char("51") 3
Char("52") 4
Char("53") 5
Char("54") 6
Char("55") 7
Char("56") 8
Char("57") 9
Char("58") :
Char("59") ;
Char("60") <
Char("61") =
Char("62") >
Char("63") ?
Char("64") @
Char("65") A
Char("66") B
Char("67") C
Char("68") D
Char("69") E
Char("70") F
Char("71") G
Char("72") H
Char("73") I
Char("74") J
Char("75") K
Char("76") L
Char("77") M
Char("78") N
Char("79") O
Char("80") P
Char("81") Q
Char("82") R
Char("83") S
Char("84") T
Char("85") U
Char("86") V
Char("87") W
Char("88") X
Char("89") Y
Char("90") Z
Char("91") [
Char("92") \
Char("92") \
Char("93") ]
Char("94") ^
Char("95") _
Char("96") `
Char("97") a
Char("98") b
Char("99") c
Char("100") d
Char("101") e
Char("102") f
Char("103") g
Char("104") h
Char("105") i
Char("106") j
Char("107") k
Char("108") l
Char("109") m
Char("110") n
Char("111") o
Char("112") p
Char("113") q
Char("114") r
Char("115") s
Char("116") t
Char("117") u
Char("118") v
Char("119") w
Char("120") x
Char("121") y
Char("122") z
Char("123") {
Char("124") |
Char("125") }
Char("126") ~
Char("127") 
Char("128") €
Char("129") 
Char("130") ‚
Char("131") ƒ
Char("132") „
Char("133") …

于是我使用了 在单引号内加入多个字符字母

str = 'aasssa';
abs(str);
最终结果 -> ans->  97    97   115   115   115    97

已经到这一步了,呢么不妨做一个大胆的猜想。是否是在单引号内,所有包裹起来的数据都是属于字符类型的。全部可以转换为对应的 ASCII字符编码。

呢么上面有说过,我们也可以使用双引号包裹,呢么是否双引号包裹起来的,才是字符串呢?(理论上来说字符串就是一堆char类型拼接成的数组而已。). 实践永远是证实的标准。

于是我们使用了第三组数据。

很惊讶,它并不能转换为对应是ASCII编码。呢么基本上也就坐实了,使用单引号包裹起来的,就是我们的字符类型,但是他跟我们学过的Java的char类型不一样,它可以在一个引号内包裹多个字符,但是Java只允许一个包裹一个。

使用双引号包裹起来的,也就是我们所了解的字符串。对应Java的String类型。 字符和字符串还是有很大区别的。可以根据按需使用。

通常使用单引号,有的参数需要使用双引号的时候在考虑使用。


abs()函数

于是在这里,我们先暂定做一个小猜想,错了在改就是。abs() 函数,呢么他的作用是什么,就是把对应的字符,转换为对应的计算机编码(ASCII) 的数值。


char()函数

呢么上面提到过。我们可以把字符转换为数字,呢么我们是否可以把对应ASCII编码的数字转换为字符呢?也是可以的,就是我们的标题,char函数。

用法也是很简单,只需要把字符对应的ASCII编码输入进去,就可以转换为对应的字符。


num2str()函数

他的作用也很简单,其实是做了一个互相转化,把数字,转换为字符类型。

但是需要注意的是,虽然变量a被转换为字符类型,但是实际上存储的依然是,数字类型,这个我们可以在方法区或者直接调用变量 a 来得到证实。


str2num() 函数

通过这个函数,可以把字符包裹的数字,转换为,真实的数字。如

str = '20';
a = str2num(str);-->  20  --> a = 20

length()函数

这个函数也很好理解,返回对应字符的长度,单位是字符。

注意,返回的是字符字符串的长度,也就是使用单引号包裹的字符。才可以完全返回。而使用双引号包裹的,是属于一个整体。(测试所得,可能有误。 我刚刚接触,不理解。只能猜测。)

因为使用双引号包裹是有特殊意义的存在,有的函数参数要加单引号,有的要加双引号是因为:

不能使用数组将字符串与“”连接起来。

s1="12",s2="34",s3="45"s1 ="12"s2 ="34"s3 ="45">> str=[s1,s2,s3]str =1×3 string 数组"12"    "34"    "45">> s1='12',s2='34',s3='45'
s1 ='12's2 ='34's3 ='45'>> [s1,s2,s3]ans ='123445'

矩阵

所有的东西都可以归结于矩阵的一个运算。矩阵是很强的,也是我们这个软件的运算核心。比如神经网络啊,无人驾驶啊等等。

矩阵的定义

如何去定义一个矩阵。

% 最简单的一个矩阵
a = [1, 2, 3; 4, 5, 6; 7, 8, 9];
a = [1 2 3; 4 5 6; 7 8 9];
% 我们会得到一个结果
a =1     2     34     5     67     8     9

我们可以看到,上面列举了两种矩阵的方式,数组。但是在数组里面,有什么规律。

第一种 [1, 2, 3; 4, 5, 6; 7, 8, 9]

我们可以看见。每一行的结尾,都会有一个 ; 结尾,中间连接是使用 , 来连接。这是一个三维矩阵。

第二种 [1 2 3; 4 5 6; 7 8 9]

结尾依然是 ; 分号结尾,但是连接点变成了空格,根据个人喜好来使用即可。

两种方式都可以。

矩阵的转置 a(T)

在数学中,矩阵转置的表现方式是 t。 也就是转置的首字母缩写。Transpose;

呃。等一下。我去给你写一个去。字不好,凑合看。几个月没握笔了。

呢么在我们在我们的矩阵中,如何完成一个矩阵的转置呢。其实也是很简单的!

% 进行矩阵转置。
a = [1 2 3; 4 5 6; 7 8 9; 9 6 3]
%结果为:
a =1     2     34     5     67     8     99     6     3% 开始转换
b = a'% 结果为
b =1     4     7     92     5     8     63     6     9     3

于是我们把上面的结果使用图像的形式来展示,可能会更容易看懂一点。毕竟有图,谁愿意看一堆垃圾数据呢。

不难发现,我们把a 赋值给了b,原本这个操作是没有问题的。但是问题在哪里呀。我们加上了一个单引号。而这个单引号,所做到的操作是什么,就是 矩阵转置! 由原来的 横向矩阵,转换为了纵向矩阵。 也就是相当于。

[1, 2, 3; 4, 5, 6; 7, 8, 9]T

这样的一个表达形式。


矩阵向量? 我数学知识不行,不大行,猜测

首先我们写一个基础矩阵。

a = [1, 2, 3; 4, 5, 6; 7, 8, 9];
% 得到如下结果
a =1     2     34     5     67     8     98     5     2

呢么我们如何把他变成一个向量。

a = [1, 2, 3; 4, 5, 6; 7, 8, 9];b = a(:);

可以看到,我们的矩阵变由 4 * 3 double 变成了 12 * 1 double。

我只是猜测啊。我只是猜测。只是猜测啊!不确定是向量。 呢么矩阵向量的加减乘除。其实也很好理解。

我的文化知识不够,对不起大哥们。

好了。先不管,先看看运行结果和规律。

呢么可以看到我们的运行结果为。

>> a = [1, 2, 3; 4, 5, 6; 7, 8, 9; 8, 5, 2]a =1     2     34     5     67     8     98     5     2>> b = a(:)b =147825853692

把他拉扯成向量,可以发现什么。 他并不是横向拉扯,而是做一个纵向的拉扯,从第一列第一个,也就是 A(ij) ,A1,1

到A2,1 到A3,1 然后是A4,1 第一行拉完之后,就是第二行,A2,2 以此类推。

Matlab数学建模工具相关推荐

  1. matlab球落点的数学建模,MATLAB数学建模:智能优化算法-人工鱼群算法

    MATLAB 数学建模: 人工鱼群算法 1. 基本原理 人工鱼群算法是一种受鱼群聚集规律而启发的优化算法. 在人工鱼群算法中, 我们假定鱼群的活动行为分为: 觅食行为, 群聚行为, 追随行为和随机行为 ...

  2. 数学建模matlab imread,《matlab数学建模方法与实践》第三章 数据的处理

    3.1数据的获取 3.1.1从Excel中读取数据 a= xlsread('路径',n(sheetn),'A(n-1):Bn(读入的数据范围)') 3.1.2从TXT中读取数据 3.1.2.1.1 同 ...

  3. Matlab中一球反弹的高度,matlab数学建模2乒乓球的弹跳和罗基斯帝模型.doc

    matlab数学建模2乒乓球的弹跳和罗基斯帝模型.doc 1乒乓球的弹跳罗基斯第模型问题罗基斯第模型一个乒乓球离球拍的高度为H0,落在球拍上反弹,设恢复系数为E,不计空气阻力.1如果E为常数,讨论球的 ...

  4. matlab数学建模方法与实践 笔记1:快速入门

    入门案例 1.导入数据 2.数据探索 3.多项式拟合 4.发布功能 5.数据类型 6.全部代码 代码在Cha2文件夹下 1.导入数据 2.数据探索 3.多项式拟合 4.发布功能 5.数据类型 6.全部 ...

  5. 排课系统matlab,matlab数学建模排课

    matlab数学建模排课Tag内容描述: 1.TOMLAB课表编排问题 我们老师让我们做一个课表编排问题 题目见 我试图用基于MATLAB的一个软件TOMLAB做 因为他有一个例子 见 由于我对MAT ...

  6. 《MATLAB数学建模方法与实践(第3版)》第2章学习笔记

    第2章 MATLAB数学建模快速入门 2.1 MATLAB快速入门 2.1.1 MATLAB概要 MATLAB是矩阵实验室(Matrix Laboratory)的缩写.MATLAB的基本数据单元是矩阵 ...

  7. 视频教程-MATLAB数学建模-Matlab

    MATLAB数学建模 图像和算法等领域有多年研究和项目经验:指导发表科技核心期刊经验丰富:多次指导数学建模爱好者参赛. 宋星星 ¥12.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+ ...

  8. 【MATLAB数学建模算法代码(六)之遗传算法】

    MATLAB数学建模算法代码(六) 遗传算法: 根据自己需要修改参数即可!!! %遗传算法主程序 %Name:genmain05.m function genmain() tic; clear clf ...

  9. Matlab数学建模工具箱(mathmodl),国赛必备

    数学建模国赛马上开始了,给正在准备参赛的小伙伴推荐一个学习数学建模MATLAB的一个工具箱-->mathmodl matlab数学建模工具箱,里面有一些数学建模常用算法或函数的matlab程序和 ...

  10. 在matlab中以图像中心为旋转轴逆时针旋转30度自编程序,MATLAB数学建模习题

    MATLAB数学建模习题1 一.单项选择题(将选择答案写在答题纸上,每小题2分共20分) 1.在MATLAB命令窗口中键入命令,Vname=prod(7:9)/prod(1:3),可计算组合数 如果省 ...

最新文章

  1. java接口深入理解,深入理解Java接口
  2. verilog中如何拆分一个数
  3. C++智能指针(设计和使用)
  4. 【JavaScript】parseInt
  5. android广告平台的介绍
  6. CentOS 7 更换 yum 源
  7. python中json格式数据输出实现方式(无unicode编码输出形式)
  8. 前端学习(1338):mongoDB删除文档
  9. pc端无法ping android模拟器_【内附下载方式】PC端最新宝可梦 Lets Go去皮去伊模拟器+最新dlc+mod...
  10. python作用域顺序排列_详解Python函数作用域的LEGB顺序
  11. oracle 函数 实现重载_Oracle 过程、函数、包、重载、自主事务
  12. 基于python的在线考试系统-基于Django的在线考试系统
  13. 新建模块 pom.xml依赖无法识别_使用模块依赖关系,第2部分
  14. FreeTextBox使用详解(FTBv3-1-6)
  15. 《功夫》– 技穷后的挣扎
  16. 时间状语:(现在完成时)/ 固定语句(现在完成时)/29主动表被动/23过去完成时:又 名 过去的过去;/过去将来时/(过去完成时)/25 过去完成时,固定搭配/26 时间状语 (将来完成时)
  17. 记一次固态硬盘数据恢复
  18. 操作系统:文件的物理结构(文件分配方式)
  19. java谐音梗_你听过最好玩的英语谐音梗是?
  20. 数加平台在数据挖掘项目中的实践

热门文章

  1. 三菱FX3U生产方案 FX3U源代码+PCB文件全套生产方案 基于STM32F10的FX3U源码, 可直接使用GXworks2软件
  2. uniapp 调用阿里云OCR身份证识别
  3. CSDN客服联系方式
  4. python网页爬虫菜鸟教程_Python爬虫实践(7)-抓取菜鸟教程python学习路线-工具-站长头条...
  5. EasyUI前端框架
  6. OpenCL编程入门
  7. cadz轴归零命令_cad 中z轴归0方法
  8. sscanf_s函数用法
  9. ADMM算法(交替方向乘子法)
  10. DDA算法和Bresenham算法