2019独角兽企业重金招聘Python工程师标准>>>

MATLAB这个语言灰常牛B大家都知道,封装性良好且支持混合编程。比如...

OK,现在我们打开MATLAB

Hint: 官方帮助文档很给力!

在MATLAB程序中,由于矩阵运算的重要,我们可以理解为“一切变量皆向量”。

学习语言时,许多时候我们都从Hello World开始,在MATLAB中,这一个程序是这样的:

disp('Hello World!');

恩,确实只需要一行...

按你胃(Anyway),我们还可以给一个变量赋值

a = 2

还可以让给一个变量赋值为向量

a = [1 2 3 4]

然后,再试一下矩阵

a = [1 2 3; 4 5 6; 7 8 10]

Hint:试一试这些命令,看看程序返回的是什么,再在末尾加上分号(;)试一试!

工作区:当前在工作区(workspace)可用的变量叫做Workspace Varibles。比如,我们运行这两条命令:

A = magic(4);
B = rand(3,5,2);

然后,你就可以在workspace看到它们

另外,我们可以随时使用whos命令来查看当前变量的属性

还可以这样。。

MATLAB运算符:在程序中的加减乘除还是用我们熟悉的+、-、*、/,不过在MATLAB中还有一个“左除”,即\,有A\B = B/A。

矩阵乘除运算直接可以用(*/\)这三个符号运算,另外还有点乘(.*)符号表示对应位置相乘,点除、点方(.^n)同理。

不妨自己试一下 B = A.*A

输出格式:试一试输入format long命令,再输入C = B * inv(B)。再把long换成short再试一下

级联:即把两个矩阵连接起来,一般有两种方式——横向(C = [A,B])和纵向(C = [A;B])两种方式

注释:打一个百分号,在这一行后面写注释即可

:虚部用i或j表示即可,如:

c = [3+4i, 4+3j; -i, 10j]

矩阵元素的索引:比如A是一个4*4的矩阵,MATLAB提供了两种索引方法:一是A(行,列),如A(4,2)表示A中第4行第2列的元素;二是A(index),其中index是按列向下数(和C/C++的按行从左往右刚好相反),如A(3)表示第一列第三行的元素,A(8)表示第4行第2列的元素

Hint:试一试越界的index(如A(17)和A(5,3)),会有什么后果?

那么要同时取几行或几列,要怎么做呢?

这时可以使用冒号:如A(1:3,2)就是矩阵A的1-3行第二列的元素;A(3,:)是矩阵A第三行

冒号还可以这样用:

start:step:end

如D = 0:10:100运行后,D = [0,10,20,30,40,50,60,70,80,90,100]

保存变量到文件:save命令,以.mat为后缀即可,如 save myfile.mat

从文件载入变量:load命令,如load myfile.mat

如何清空:clear命令清空变量,clc命令清空执行过的命令

字符串:MATLAB中的字符串操作和C/C++中类似(就连字符串处理函数的取名也和C/C++差不多。。),这里推荐这篇博文:http://www.cnblogs.com/emanlee/archive/2012/09/13/2683912.html

和普通变量一样,字符串也是“向量”,因此也可以级联。具体命令为:比如此时b = 'tencent',执行a = ['str',b];a就变为'strtencent'。

f = 71;
c = (f-32)/1.8;
tempText = ['Temperature is ',num2str(c),'C']

其中num2str函数可以把数字转化成字符串形式。

接下来,我们来看看如何绘制2D和3D的图像吧!

    2-D作图利器--plot函数: 先来看个例子,如何绘制y=sin(x)的图像

x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)

这时候就可以看到图像了。然后可以加上这些命令美化一下

xlabel('x')
ylabel('sin(x)')
title('Plot of the Sine Function')

Hint:试一下将plot(x,y)改为plot(x,y,'r--')绘制出的图像!

如果要在一张图上绘制多条曲线,则可以用hold on命令

x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)
hold on %继续在这个Figure上作图
z = cos(x);
plot(x,z,'r--')
xlabel('x')
title('Plot of the Sine and Cosine Function')
legend('sin','cos')

3-D作图利器--surf/mesh函数

3D图像可以用meshgrid函数做一个平面,再根据函数方程作图;也可以用参数方程作图。

%做 z=x*e^(-x^2-y^2) 的图像
[X,Y] = meshgrid(-2:.2:2);    %构造平面
Z = X .* exp(-X.^2 - Y.^2);   %构造图形
subplot(2,1,1); surf(X,Y,Z); title('surf');  %使用surf作图
subplot(2,1,2); mesh(X,Y,Z); title('mesh');  %使用mesh作图

上边是用surf函数做的图,下面是用mesh函数做的图,喜欢哪个就用那个啦~

Hint:查阅一下MATLAB官方文档的subplot函数!

然后我们用参数方程做个图:

t = 0:pi/10:2*pi;
[X,Y,Z] = cylinder(4*cos(t));    %即p=4cost
subplot(2,2,1); mesh(X); title('X');
subplot(2,2,2); mesh(Y); title('Y');
subplot(2,2,3); mesh(Z); title('Z');
subplot(2,2,4); mesh(X,Y,Z); title('X,Y,Z');

MATLAB编程

在MATLAB中编辑文件(如果没有,自动创建.m文件):edit Calcmean

至于什么循环、条件分支语句,聪明的你肯定一看就能明白:

%Calcmean.m
%计算随机生成数的平均值
clear;            %清除工作区
nsamples = 5;
npoints = 50;
k = 1;while k<=nsamples  %循环iterationString = ['Iteration #',int2str(k)];disp(iterationString)currentData = rand(npoints,1);sampleMean(k) = mean(currentData)    k = k+1;
end
%如果去掉 k = k+1; 一句,并把while一行换为for k = 1:nsamples,得到的结果是一样的overallMean = mean(sampleMean)
if overallMean < .49disp('Mean is less than expected');
elseif overallMean > .51disp('Mean is greater than expected');
elsedisp('Mean is within the expected range');
end

按下工具条里面绿色的“Run”,就可以运行它了!(PS:感觉跟Python一样一样的!)

Hint:查阅一下官方文档对mean函数的介绍!

Hint:官方文档快速查阅命令有doc和help,如

doc mean
help mean

分别试一下吧!

不知不觉写了一下午,没想到我也能一口气写出3400字的博文,那么MATLAB Quick Start : Part I 就到这里吧!

参考文献:

[1]The MathWorks, Inc. MATLAB® Primer . 2015(24) : 2-31.

转载于:https://my.oschina.net/bgbfbsdchenzheng/blog/501141

初学数模-MATLAB Quick Start! Part I相关推荐

  1. 数模matlab入门教程-001-xlsread用法

    数模matlab入门教程-001 1.函数介绍 2.数据读入 3.后续内容 数模要开始了,整理了一些基本资料提供给没有基础的同学.本文以2017届D题为例,21天数学建模从入门到精通. 这个题目可以在 ...

  2. 【数模matlab】数据建模:云模型

    云模型 用于描述处理不确定性问题 基础概念 基本单位: "云"或者"云滴" 云的表达方式: 利用联合密度(x,µ)表示,µ是隶属度,µ->1则确定性越高 ...

  3. 大一小白的数模比赛(灰色关联度和灰色预测)附Matlab代码

    目录 文章目录 前言 一.我都干了什么 二.两个数学模型 1.灰色关联度 2.灰色系统预测 总结 前言 五一期间因为疫情出不了省,没法去玩,但也不能让自己闲着,和同学组队参加了学校的知行杯数模比赛.我 ...

  4. 科研资料|论文数模真的好难?那是你还不会Matlab!

    岛主在读书搞科研的过程中,经常听闻这么一句话:"Matlab除了不会生孩子,什么都会!" Matlab究竟有着怎样的神奇魅力,让无数学子竞折腰!如果你是定量研究领域的科研er,那一 ...

  5. 2022年数模国赛C题(岭回归、区间预测、矩阵热力图、Fisher判别分类模型)——总结心得(附最后一次数模经历,Matlab\SPSS\Lingo的理解综合)

    文章目录 一.国赛 二.国赛代码展示 1.1 问题一 1.2 问题二 1.3 问题三 1.4 问题四 三.对于软件的理解 3.1 Matlab 3.1.1 表格的读取 3.1.2 元胞数组的相关函数的 ...

  6. 1998年全国大学生数学建模竞赛A题——投资的收益和风险数模P133|lingo,matlab

    1998年全国大学生数学建模竞赛A题 目录 题目 问一 用lingo求解 用matlab求解 问2 题目 市场上有n 种资产(如股票.债券.-)Si ( i=1,-n) 供投资者选择,某公司有数额为M ...

  7. Matlab:数模02-多属性决策模型

    文章目录: 加权算术平均算子 属性化的归一化处理 多属性决策模型实例 加权算术平均算子 属性化的归一化处理 多属性决策模型实例 首先我们要判断u1-u5的属性值都对应着什么.一般而言,我们的属性值要么 ...

  8. 数模中常使用的Matlab绘图与Excel绘图

    最近经常用到绘图,本菜鸡QAQ就把这部分所需要的知识整理了一下(此文用的是matlab2014a),方便以后懒得去查找资料啦~ 绘图颜色与线型 颜色 Matlab的plot函数里所带的基本颜色有8钟, ...

  9. matlab画鱼群集群行为,鱼群集群行为的的建模与仿真数模

    鱼群集群行为的的建模与仿真数模 鱼群集群行为的的建模与仿真 摘要 本文利用人工生命技术的特点,把每条鱼看成是一个能够自主决策的Agent,它们会根据自己的观察来感知周围的环境,并按照一定的规则决策.然 ...

最新文章

  1. asp.net 发布程序到iis后无法连接到oralce数据库问题
  2. 使用jq.lazyload.js,解决设置loading图片的问题
  3. 问题合集 ------- 用 Eclipse 平台进行 C/C++ 开发
  4. [健康]女人喝红酒的好处
  5. es 调整gc_实际中进行GC调整
  6. [转]Ubuntu远程桌面登陆
  7. python模块化编程_Python模块化编程
  8. Atitit 常见聚合运算与算法 目录 1.1. 单行函数,vs 那就是聚合函数 1 1.2. 聚合分类 哈希聚合 标量聚合 流聚合 1 1.3. 常见聚合函数 mysql oracle等 1 r
  9. 教你用C调1645和弦,写出不一样的歌
  10. 小盒子可以在大盒子里面移动
  11. Paypal 实现自动订阅
  12. 云原生CI/CD:tekton/pipeline之认证篇
  13. lnk1120如何解决_Linking a C++ DLL 引发LNK1120和LNK2019问题的解决方案
  14. 【C语言】结构体指针与结构体数组
  15. 第31课:彻底解密Spark 2.1.X中Shuffle中内存管理源码解密:StaticMemory和UnifiedMemory
  16. bat批处理命令基础知识
  17. 标数据,您的招投标业务专家
  18. JS实现动态分区分配中的首次适应算法和最佳适应算法
  19. 国瀚实业|理财规划中如何认清自我风险承受能力
  20. JAMA Neurology:帕金森病不同疾病阶段的神经影像学生物标志物

热门文章

  1. cnn 示意图_Two-Stream CNN(双流CNN)介绍(NIPS2014)
  2. SQL Server 2019安装教程(图文)
  3. [ExtJS6]ResponsiveColumn-自适应列布局
  4. php mysql select where_PHP MySQL Where 子句
  5. python调用函数怎么错_python调用函数失败是什么原因
  6. Base64与文件(docx)流的加密和解密
  7. Properties工具类
  8. c语言推箱子源代码及注释,求大神 解析推箱子源代码 要详细
  9. java 面向对象 重载_Java方法重载
  10. Eclipse添加注释的快捷键alt+shift+j,在菜单中是source-gt;generate element comment