(转载)从0开始学matlab(第2天)—MATLAB 变量的初始化

news/2024/3/4 9:58:57
        当变量初始化时,MATLAB 将会自动建立变量。有三种方式初始化 MATLAB 中的变量:
1 .用赋值语句初始化变量
2 .用 input 函数从键盘输入初始化变量
3 .从文件读取一个数据
前两种方法我们在这里讨论,第三方法我们将在 2.7 节介绍。

1 用赋值语句初始化变量

        最简单的创建和初始化一个变量的方法是用赋值语句赋予变量一个或多个值。赋值语句的一般形式如
var = expression
        var 是变量名, expression 可以是一个标量、一个数组或常量、其他变量和数学运算符号(+、 - )的联合。这个表达式( expression)的值是通过一般的数学运算法则计算出来的,然后将产生的结果存储到变量 var 中。下面是一些用赋值语句初始化的变量:
var=40*i; 
var2=var/5; 
array=[1 2 3 4]; 
x=1; 
y=2;
        第一个例子创建了一个 double 类型的标量变量,存储了一个虚数 40i。第二个例子创建了一个表达式 var2 ,把 var/5 的值存储于内。第三个例子创建了一个数组 array,并存储了一个 4 元素的行向量于内。最后一个例子显示了多个赋值语句可写在同一行,中间用逗号或分号隔开。注意如果在赋值语句执行时变量已经存在,那么这个变量原有的值将被覆盖。
        正如第三个例子显示的,数据数组也可以初始化变量。我们可以用是括号()和分号建立数组。所有元素按行阶排序,换句话说,每一行的值从左向右,顶部的行置于最前,底部的行置于最后。在一行内单个数值可用空格或逗号隔开,而行与行之间要与则用分号隔开,或另起一行书写。下面的表达式都是合法的,能用于建立一个变量:

         注意一个数组每一行元素的个数必须完全相同,每一列元素的个数也必须完全相同.像[1 2 3;4 5]这样的表达式是非法的,因为第一行有 3 个元素,第二行有只有 2 个元素.

常见编程错误

每一行元素的个数必须完全相同,每一列元素的个数也必须完全相同.试图创建一个不同

( ) 拥有不同数目元素的数组 , 在编译时将会出现错误 .
        用于初始化数组的表达式可以包括代数符号或事先已经定义好的数组. 例如赋值语句
a=[0 1+7] 
b=[a(2) 7 a]
定义了数组 a=[0 8] 和数组 b=[8 7 0 8].
当我们创建一个数组时 , 不是每一个元素都必须定义 . 如果要定义一个特殊的数组 ,或只有一个或几个元素没有定义 , 那么之前的那些元素将会自动创建 , 并初始化为 0. 例如 ,如果数组 c 事先没有定义 , 语句 c(2,3)=5 将会创建矩阵
        相似地,指定一个值赋予一个存在的数组,但超过了这个数组的大小。例如,假设存在一数组 d=[1 2], 下面这个语句
d(4)=4;
        将会制造出数组 d=[1 2 0 4]. 在每个赋值语句末的分号有特殊的目的:无论在何时一个表达式在赋值语句中被赋值,分号将会中止变量值的重复。如果句末没有分号,变量值将会自动显示在命令窗口(The Command Windows)中。
 e=[1 2 3;4 5 6] 
e = 1 2 3 4 5 6
        如果在赋值语句末有分号,这种重复将会消失。重复是一个用于检查你的工作极好的方法,但是它降低了运行速度。因此,我们在一般情况下总是禁止重复。尽管如此,重复计算的结果提供了一个强大的应急调试器。如果你不能确定一个特定的赋值语句结果是多少,这时你可以去掉这个语句后的分号,当这个语句编译时,结果会显示在命令窗口(The Command Windows)
好的编程习惯
MATLAB 赋值语句后加上一个分号来禁止变量值在命令窗口(The Command Windows) 的重复。这将大大提高编译的速度。
好的编程习惯
如果你在调试程序时需要检测一个语句的结果,可能把句后的分号去掉,这样结果将会出现在命令窗口 (The Command Windows)

2 用捷径表达式(short expressions)来赋值

        创建一个小数组用一一列举出元素的方法是比较容易的,但是当我们创建包括成千上万个元素的数组怎么办?把每一个元素列举出来则不太现实。MATLAB 提供一种专门的捷径标记法,这种方法用克隆运算符(colon operator)适用于上述情况。克隆运算符指定一系列的数值,它指定了这个系列数的第一值,步增和最后一个值。它的一般顺序始下
first:incr:last
        first 代表数组的每一个值, incr 代表步增量, last 代表这个数组的最后一个值。如果步增量为 1 ,那么步增量可省略,而变成了 first:last 格式。
        例如,表达式 1:2:10 是创建一个 1 × 5 行向量 [1 3 5 7 9] 的简便方法。
>> x=1:2:10 
x = 1 3 5 7 9

Angles=(.01:.01:1)*pi
        捷径表达式可以联合转置运算符(’)来初始化行向量,或更加复杂的矩阵。转置运算符可以在需要的情况下完成行和列的转换。因为这个表达式
f=[1:4]';

3 用内置函数来初始化

        数组也可以用 MATLAB 内置函数创始化。例如,函数 zeros 可以初始化任何大小的全为零的数组。用许多形式的 zeros 函数。如果这个函数的参数只是一个标量,那么 MATLAB将会创建一个方阵,行数和列数均为这个参数。如果这个函数有两个标量参数,那么第一个参数代表行数,第二个参数代表列数。因为 size 函数所返回的一个数组的行数和列数,所以它可以联合 zeros 函数来创建一个相同大小零矩阵。下面是一些用到 zeros 函数的例子。
a=zeros(2); 
b=zeros(2,3); 
c=[1 2;3 4]; 
d=zeros(size(c))

相似地 ,ones 函数产生的数组包含的元素全为 1,eye 函数通常用来产生单位矩阵 ,只有对角线的元素为 1. 其他元素为 0. 2.1 列出一些用于初始化变量的函数.
 表 1 用于创始化变量的 MATLAB 函数

 

4用关键字 input 初始化变量

        关键字 input 用来提示使用者和直接从键盘输入初始化变量 . 当脚本文件 (Script files) 时, 它可以用来提示使用者输入 .input 函数在命令窗口 (The Command Windows) 显示提示语句 ,并等待用户输入一个值 . 例如 , 下面的赋值语句 :
my_val=input('enter an input value:')
        当这个语句被编译时,MATLAB 打印出字符串 enter an input value:, 然后等待用户回复 .如果要只输入一个数 , 那么只需要直接键入 , 如果要输入一个数组 , 则必须带上中括号 ([]).不管怎样,当按下回车键时 . 在窗口输入的任何值都会被储入变量 my_val. 如果只按下回车键 ,那么这个变量就存储了一个空矩阵 .
        如果 input 函数中有字符 's' 做为它的第二个参数 , 输入的数据就被当字符串 . 因此 , 语句
in1=input('enter data:'); 
enter data:1.23
        把数值 1.23 存储到 in1 . 而语句
in2=input('enter data:','s') 
enter data:123
        把字符串 1.23 存储到 in2 .

http://www.ppmy.cn/news/66441.html

相关文章

代理ip在爬虫中的应用

代理IP在爬虫中的应用主要是为了解决以下两个问题: IP封禁问题 很多网站为了防止爬虫,会对频繁访问的IP进行封禁,这样就会导致爬虫无法继续访问。此时,使用代理IP可以隐藏真实IP,从而避免被封禁。 IP限制问题 有些…

SpringBoot集成Swagger使用SpringSecurity控制访问权限

1.加入swagger依赖 这是添加Swagger的Maven依赖配置。在项目的pom.xml文件中添加以上两个依赖可以使用Swagger。其中springfox-swagger2是Swagger API的核心依赖&#xff0c;springfox-swagger-ui是Swagger的UI依赖。 <dependency><!--添加Swagger依赖 --><gro…

Python每日一练(20230511) 跳跃游戏 I\II\III\IV

目录 1. 跳跃游戏 Jump Game I 2. 跳跃游戏 Jump Game II 3. 跳跃游戏 Jump Game III 4. 跳跃游戏 Jump Game IV &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 跳跃游戏 Jump Game …

django基础知识详解

1. 安装与介绍 课程特点&#xff1a; 学习难度大&#xff0c;大部分内容需要理解并记忆文件较多易混淆学习阶段注重框架使用&#xff0c;工作阶段注重实现业务逻辑综合应用强&#xff0c;小练习少 1.1 Django框架的介绍 2005年发布,采用Python语言编写的开源web框架早期的时…

各认证机构TC申请中测试要求更新

在TC的ADDITIONAL INFORMATION 就是面料的克重、织数那些信息&#xff1f;能否明确&#xff1f; 目前 additional information 中必须提供的是&#xff1a; 纤维产品&#xff1a;纤维长度&#xff08;mm&#xff09;和纤维细度&#xff08;适用单位&#xff09; 纱线&#xff1…

Flutter音乐播放audioplayers

简介 Flutter的audioplayers是一个Flutter插件&#xff0c;可以播放多个同时的音频文件&#xff0c;支持Android、iOS、Linux、macOS、Windows和web平台。它有以下特点&#xff1a; 可以从本地文件、网络资源或内存中加载音频可以控制音量、进度、速度和循环可以播放多个音频…

idea新建springboot项目并提交码云仓库

新建springboot项目 平常我们在使用联网方式新建springboot项目时总是会遇到连接失败等这种情况 IDEA创建项目&#xff0c;本质是从官网创建并下载项目&#xff0c;然后导入本地。 创建项目连接失败&#xff0c;一般是外国网站的原因导致连接超时&#xff0c;解决方式很简单&a…

Vue响应式工具

Vue数据检测&#xff1a;isRef()、isReactive()、isReadonly() isRef&#xff1a;检测是否为ref数据&#xff0c;返回布尔值 isReactive&#xff1a;检测是否为reactive数据&#xff0c;返回布尔值 isReadonly&#xff1a; 检测是否为readonly只读数据, 返回布尔值 **当rea…

class其实是function的语法糖,底层继承实现还是基于原型链

定义在原型上的方法与定义在构造函数内部的方法不同 function Person(name, age) {this.name name;this.age age;}Person.prototype.greet function() {console.log("Hello, my name is " this.name);};const person new Person("Alice", 25);functio…

Ubuntu执行定时命令的方法

简单使用如下 输入下面的命令安装at&#xff1a; sudo apt-get install at输入下面的命令&#xff1a; # e.g. at 22:04 2021-7-7 at [time] [date]接着输入自己想要执行的命令&#xff0c;按CtrlD结束输入。 接着自己的命令即可定时执行。 详细使用 生活中&#xff0c;我…

React 的源码与原理解读(十二):Hooks解读之一 useCallbackuseMemo

写在专栏开头&#xff08;叠甲&#xff09; 作者并不是前端技术专家&#xff0c;也只是一名喜欢学习新东西的前端技术小白&#xff0c;想要学习源码只是为了应付急转直下的前端行情和找工作的需要&#xff0c;这篇专栏是作者学习的过程中自己的思考和体会&#xff0c;也有很多参…

Educational Codeforces Round #148 (Rated for Div.2) A~C

A. New Palindrome 题意&#xff1a; 给定一个回文字符串&#xff0c;问是否可以调换其中两个字符&#xff0c;得到另一个不同的回文字符串。 思路&#xff1a; 题目的条件给的宽松&#xff0c;只是询问是否可以调换&#xff0c;并没有要求调换的位置。 方法一&#xff1a;…

LeetCode5. 最长回文子串

写在前面&#xff1a; 题目链接&#xff1a;LeetCode5. 最长回文子串 编程语言&#xff1a;C 题目难度&#xff1a;中等 一、题目描述 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同&#xff0c;则该字符串称为回文字符串。 示例…

数据库系统工程师——第三章 数据结构与算法

文章目录 &#x1f4c2; 第三章、数据结构与算法 &#x1f4c1; 3.1 线性结构 &#x1f4d6; 3.1.1 线性表 &#x1f4d6; 3.1.2 栈和队列 &#x1f4d6; 3.1.3 串 &#x1f4c1; 3.2 数组和矩阵 &#x1f4c1; 3.3 树和图 &#x1f4d6; 3.3.1 树 &#x1f4d6; 3.3.2 图 &…

windows 编译 opencv

编译需要的基础工具 #cmake是配置构建工具&#xff0c;mingw是编译工具 cmake CMake是一款跨平台的编译管理工具&#xff0c;可以自动生成各种不同编译环境&#xff08;如Makefile、Visual Studio Solution等&#xff09;&#xff0c;从而实现在不同平台上进行代码编译的目的…

亲测好用|甲方、专家和领导,用三维模型汇报方案如何投其所好?

身为设计方的你&#xff0c;有没有这样的经历&#xff1a; ➤ 一个非常优秀的方案未能被甲方采纳&#xff0c;反而甲方选择了一个不如自己的方案&#xff0c;造成了很大的遗憾&#xff1b; ➤ 在讲述自己的设计方案的时候&#xff0c;经常越说越散&#xff0c;甚至到了最后自…

MD-MTSP:遗传算法GA求解多仓库多旅行商问题(提供MATLAB代码,可以修改旅行商个数及起点)

一、多仓库多旅行商问题 多旅行商问题&#xff08;Multiple Traveling Salesman Problem, MTSP&#xff09;是著名的旅行商问题&#xff08;Traveling Salesman Problem, TSP&#xff09;的延伸&#xff0c;多旅行商问题定义为&#xff1a;给定一个&#x1d45b;座城市的城市集…

MySQL 字段为 NULL 的坑,你踩过吗?

前言 很多小知识点&#xff0c;我以为自己懂了&#xff0c;实际没搞透。 数据库字段允许空值(null)的问题&#xff0c;你遇到过吗&#xff1f; 在验证问题之前&#xff0c;我们先建一张测试表及测试数据。 构建的测试数据&#xff0c;如下图所示&#xff1a; 有了上面的表及…

Feign踩坑源码分析--@FeignClient注入容器

一. EnableFeignClients 1.1.类介绍 从上面注释可以看出是扫描声明了FeignClient接口的类&#xff0c;还引入了 FeignClientsRegistrar类&#xff0c;从字面意思可以看出是进行了 FeignClient 客户端类的注册。 1.2.FeignClientsRegistrar 详解 最主要的一个方法&#xff1a;re…

南大通用数据库-Gbase-8a-学习-35-rmt(远程导出数据文件)

目录 一、测试环境 二、引入 三、rmt导出流程 四、Linux环境模拟实验 1、不加rmt导出数据 2、加rmt导出数据 一、测试环境 名称值CPUIntel(R) Core(TM) i5-1035G1 CPU 1.00GHz操作系统CentOS Linux release 7.9.2009 (Core)内存3G逻辑核数2目的端Gbase8a版本8.6.2-R43源…
最新文章