文档章节

MATLAB的编程结构

C-1993-C
 C-1993-C
发布于 2017/09/04 15:15
字数 1105
阅读 12
收藏 1
点赞 0
评论 0

《续》

MATLAB控制流

if-else-end    switch-case  try-catch   for循环   while循环

基础输入、输出

input调用格式:s表示可输入字符串

disp(A)直接输出A的内容;fprintf直接输出内容。

循环结构

for已知循环次数;while未循环训次数;

数组控制循环:若果数组的列数作为循环次数,调用格式:for k=A(:i) 等价于k=A,将数组的列向量赋值给k,其中i是循环次数。

一个简单的例题:求10000以内的奇数和与偶数和。(看上去很简单,但是脑袋里面没有见过太多的例题,还是一头雾水)正确的程序如下:

if语句的使用(凡事要多练习才能记住公式,才能灵活运用里面的语句)

利用if语句创建数组。

                 

上图有一个判断是否为闰年的,具体判断的方法不对但是,基本程序是对的。

到此,进度已经很慢了,基本上看完简单基础,来到了一般基础了。不过还是要继续......

switch选择语句的应用。

这个程序一边看书,以便自己写,都改了好多次!!!!

小总结一下:

首先利用for循环分等级,在将5个人的名字存在元胞组内,以及每个人的分数。

rank=cell(1,5)建立一个空的能储存5个等级的元胞组。

之后简历结构体:struct其中包含三个域,每个域相当于一个元胞组里面可以存5个数据或者字符串。

复习一下结构体。调用格式:S=struct('A',a,'B',b,......);其中A。B是每个域的域名,后面a、b则是对应的域中的内容,可称为域值。

错误控制结构 try-catch-end

在执行程序的时候,首先执行try和catch之间的如果没有错误就跳过catch-end之间的程序执行end之后的程序,如果try-catch之间的程序有误,执行catch-end之间的程序后在执行end之后的程序。(第一次接触这个结构,所以参照课本用法写的详细了一点)

得到错误的原因,将X改为n后得到结果为:

函数lasterr,程序出错的时候可以获得出错的原因。

 

程序流的控制

break 强制跳出循环、终止命令。直接执行end之后的语句。常与if连用。

return用于终止当前命令的执行。

continue在for或者while循环中直接跳到下一个循环执行。

(单叙述,太抽象还要结合具体的例题分析)

总结

程序中有几点:

1.关于rem函数mod函数,对于小白的我来说是第一次接触,搜了一下。

rem大多是和mod相比较来理解的。mod整除取余。比如mod(7,3)结果=1。

rem(a,b)如果a、b的符号相同即同正同负那么就过和mod相同,但是若符号不同那么就有区别了:

rem(a,b)返回的值是a-n.*b,当b不等于0的时候n=fix(x./b) fix是向最近的整数取整。

mod(a,b)返回的值是a-n.*b,不等于0的时候n=floor(x./b) floor是向负无穷取整。

例:rem(7,-3) fix向最近的整数取整,n取-2故返回的值是7-6=1

mod(7,-3)floor向负无穷取整,所以n=-3,故返回的值是7-9=-2

附加(网友的解释):使用rem主要是因为它比mod快得多(因为MOD要兼容所有类型数据,而REM只对数值标量有效)

2.程序中的break,当执行break的时候是跳出的哪一个循环?网上以及书上说跳出最内层的循环。但是本程序中如果跳出后因该执行I=i+1了结果结汇错了。?

自我解释:突然明白的,if中的end是一个判断语句不是循环,所以说当执行到break的时候直接跳出的是while的循环,即接着执行输出语句的命令。

 其中A=rand(3,4)<0.5是A中的每一个元素与0.5比较大小如果小于0.5那么赋值为1如果小于不成立的话赋值为0。

行改成列之后有少许的变动,可以对比一下。

 

 

 

© 著作权归作者所有

共有 人打赏支持
C-1993-C
粉丝 0
博文 4
码字总数 4609
作品 0
贝尔法斯特
VC++与Matlab混合编程之引擎操作详解

Visual C++是当前主流的应用程序开发环境之一,开发环境强大,开发的程序执行速度快。但在科学计算方面函数库显得不够丰富、读取、显示数据图形不方便。Matlab是一款将数值分析、矩阵计算、信...

flyhighly ⋅ 2010/12/21 ⋅ 0

观点 | 为什么我对MATLAB情有独钟

  选自Medium   作者:Christopher Madan   机器之心编译   参与:路雪、黄小天      本文作者 Christopher Madan 喜欢用 MATLAB 编程,尽管他是一个认知心理学家/神经科学家,编...

机器之心 ⋅ 2017/12/04 ⋅ 0

matlab基本操作和语法

1.前言 准确的说这篇文章不是给完全的编程新手,特别是以前没有过一定编程经验的人准备的。 文章的适合对象是:已经有一定编程基础的人,如果你想用Matlab来快速的完成算法验证,以及科研学术...

NORTHhan ⋅ 2016/04/22 ⋅ 0

数学软件--MATLAB

MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据 分析以及数值计算的高级技术计算语言和交互式环境,主要包括MAT...

匿名 ⋅ 2010/04/28 ⋅ 2

接触Matlab10年后的一个总结,随时使用Matlab要掌握的一些要点

阅读目录 1.前言 2.Matlab的简单介绍 3.Matlab开发环境介绍 4.那些常见的命令 5.不得不说的矩阵操作 6.编程语法 7.关于Matlab我想说的话   不记得上一次写超过20行的matlab程序是什么时候了...

老朱第八 ⋅ 2017/11/11 ⋅ 0

除了不会生孩子 MATLAB 什么都会

Part 1 有趣的 MATLAB 如果你在暑假、有WIFI、有西瓜的空调房里不知道做什么,不如学下MATLAB吧,有了它,你可以什么都不需要! 知乎网友@邵恩真,示范了如何使用花式 MATLAB 玩游戏! 用 MA...

21ic电子网 ⋅ 02/01 ⋅ 0

matplotlib简介

matplotlib-1.1.1 文档翻译之简介 Created Wednesday 28 November 2012 matplotlib 是一个用python[1]写的2维数组绘图库。尽管它起初是在模仿MATLAB[2]图形命令,但是它使用python风格[pyth...

66号公路 ⋅ 2012/11/28 ⋅ 0

机器人系统--Urbi SDK

Urbi SDK 是一个用于机器人技术及复杂系统的通用软件平台,基于一个强大的并行脚本语言“urbiScript”,并结合了UObject组件的体系结构,该 结构可以灵活便捷地控制软、硬件。 同时,Urbi也完...

匿名 ⋅ 2011/04/24 ⋅ 0

Matlab/C++混合编程之mxArray的访问

在Matlab/C++混合编程中,所有与变量有关的数据类型都是mxArray类型,因此对mxArray的访问是必不可少,数据结构mxArray以及大量的mx开头的函数,广泛用于Matlab与C、C++的混合编程中。 mxAr...

Quincuntial ⋅ 2015/04/13 ⋅ 0

Matlab调用C++代码的具体mex实现详解

在这里记录一下自己的挖坑、填坑过程。从mex环境到与成功调用 在具体的实现中,由于matlab具有很强的矩阵运算能力。而对于处理太多的循环结构运算却显得很吃力。所以在具体的实现中,我们可以...

sinat_38321889 ⋅ 2017/11/21 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

关于线程的创建

转自自己的笔记: http://note.youdao.com/noteshare?id=87584d4874acdeaf4aa027bdc9cb7324&sub=B49E8956E145476191C3FD1E4AB40DFA 1.创建线程的方法 Java使用Thread类代表线程,所有的线程对......

MarinJ_Shao ⋅ 25分钟前 ⋅ 0

工厂模式学习

1. 参考资料 工厂模式-伯乐在线 三种工厂-思否 深入理解工厂模式 2. 知识点理解 2.1 java三种工厂 简单工厂 工厂模式 抽象工厂 2.2 异同点 逐级复杂 简单工厂通过构造时传入的标识来生产产品...

liuyan_lc ⋅ 38分钟前 ⋅ 0

Java NIO

1.目录 Java IO的历史 Java NIO之Channel Java NIO之Buffer Java NIO之Selector Java NIO之文件处理 Java NIO之Charset Java 可扩展IO 2.简介 “IO的历史”讲述了Java IO API从开始到现在的发...

士别三日 ⋅ 42分钟前 ⋅ 0

[Err] ORA-24344: success with compilation error

从txt文本复制出创建function的脚本,直接执行,然后报错:[Err] ORA-24344: success with compilation error。 突然发现脚本的关键字,居然不是高亮显示。 然后我把脚本前面的空格去掉,执行...

wenzhizhon ⋅ 51分钟前 ⋅ 0

Spring Security授权过程

前言 本文是接上一章Spring Security认证过程进一步分析Spring Security用户名密码登录授权是如何实现得; 类图 调试过程 使用debug方式启动https://github.com/longfeizheng/logback该项目,...

hutaishi ⋅ 今天 ⋅ 0

HAProxy基于KeepAlived实现Web高可用及动静分离

前言 软件负载均衡一般通过两种方式来实现: 基于操作系统的软负载实现 基于第三方应用的软负载实现 LVS是基于Linux操作系统实现的一种软负载,而HAProxy则是基于第三方应用实现的软负载。 ...

寰宇01 ⋅ 今天 ⋅ 0

微软自研处理器的小动作:已经开始移植其他平台的工具链

微软将 Windows 10 、Linux 以及工具链如 C/C++ 和 .NET Core 运行时库、Visual C++ 2017 命令行工具、RyuJIT 编辑器等移植到其自主研发的处理器架构 E2。微软还移植了广泛使用的 LLVM C/C++...

linux-tao ⋅ 今天 ⋅ 0

JS常见this指代总结

1. dom0级事件处理程序的回调函数内 2. dom2级事件处理程序的回调函数内 3. setTimeout 4. setInterval var test = { testfn: function () { console.log(this); }};...

静默行 ⋅ 今天 ⋅ 0

泛型的基本原理

泛型是 JDK1.5 的一个新特性,其实就是一个『语法糖』,本质上就是编译器为了提供更好的可读性而提供的一种小「手段」,虚拟机层面是不存在所谓『泛型』的概念的。 在我看来,『泛型』的存在...

沧海一刀 ⋅ 今天 ⋅ 0

学好Java只需要做到这8点,年薪30W很简单!文末福利赠送!

前言: 大道至简,所以扎实有用的方法,其实都是很简单的,难在踏踏实实的执行过程。今天为大家介绍的就是Java学习的8个看起来非常简单的方法,快学起来吧。 为什么要学习Java? Java是目前最...

java高级架构牛人 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部