MATLAB基础学习(二)-变量类型与赋值

2023-11-19

matlab解决问题的最基本思路是建立脚本文件,那么脚本文件的第一段就是定义一些变量,这和C语言等编程思想是一样的。matlab提供的变量类型很多,最基础的是三种:数值变量、符号变量、字符串,其他的类型还有cell、table等。这里仅说明最基础的变量类型。

1.数值变量
    matlab中所有的数值变量都是矩阵,赋值时,以方括号作为开头和结尾,以英文逗号或空格分割同行元素,以英文分号分割各列。例如在Command Window里输入

a=[1 2;3 4]

可以看到运算结果,a是一个数值变量。同时workspace里出现一个田字形的变量a,说明变量a的类型是数值型。


向量和数字可以视为特殊的矩阵,例如

a=[1 2] 

a=[1;2]

分别是行向量和列向量。

a=[1]  可以简写为a=1   是数字。
    数值变量的命名要求是英文字母开头,不能包含特殊符号,大小写敏感。这里推荐采用下划线来进行分割,例如value_of_A,这和其他编程语言的命名规则大体相当。
    赋值中,有时需要用到等差数列,例如定义一个向量a=[1 2 3],如果比较长,赋值很麻烦,所以matlab提供了一个简单的方法

a=[1:1:3]

这里两个冒号的意思是起始值:步长:终值。采用这种赋值方式时可以获得一个等差数列行向量,并可以省略两侧的方括号。当步长为1时,可以省略步长和一个冒号,于是可以简写为

  1. a=1:3

    另一种灵活的赋值方法是分块矩阵,其方法是变量名后面加圆括号,圆括号中加序号。例如

a=[1 2;3 4]

定义变量a之后,

b=a(1,2)

就可以把a的第一行第二列元素赋值给b,当然也可以用

a(1,2)=1

来修改矩阵中部分元素的值。这里需要注意,序号必须是自然数,且不能是零。当矩阵中有多个元素需要赋值时,可以将序号部分改成向量,例如

a([1 2],[1 2])=[1 2;3 4]

中把行数和列数都用向量表示,就是说对矩阵a的第1和2行,第1和2列,总共4个元素赋值。更进一步,也可以有a([1 2],1)表示a的第一列,也可以写成
a(1:end,1)

这里的end表示终点,即a的行数2,也可以更进一步简写成

a(:,1)

这里的冒号表示从头至尾。这类赋值方法最为常用,但基本的语法非常简单,方括号表示矩阵开头和结尾,圆括号表示从矩阵中选取部分,把握这个原则,有利于读懂程序。
    当然分块矩阵也可以

b=[a a]

这样的赋值方法,但需要注意的是,方括号中的元素必须满足矩阵的行列数要求,例如

a=[1 1]

b=[1;1]

c=[a b]

就会引起错误,因为此时matlab无法确定c的行列数。
2.符号变量
    总体而言,符号变量比数值变量简单得多,因为变化非常少,常用的赋值命令是

syms a b

syms表示这里要定义一些符号变量,a和b是变量名,符号变量的命名规则和数值变量一样。有时候也采用

syms a real

来强调a是实数变量,具体可以doc syms来获得帮助。
    有些变量之间存在依赖关系,此时可以定义

syms x y(x)

这里声明x是一个符号变量,又声明y是一个符号变量,且y的值由x决定,这相当于数学中函数的概念。当然具体的函数关系并没有明确规定。也可以

syms x y z(x,y)

来定义符号变量z,z依赖x和y。这相当于二元函数的概念。这里的圆括号显然和数值变量中的圆括号含义完全不同,这也是学习matlab最不习惯的地方,同一个符号,由于变量类型不同会有完全不同的含义。所以在学习matlab的过程中,一定要区分数值变量和符号变量。
    上述方法定义的符号变量是一个数,或者1*1矩阵,matlab中也可以定义符号矩阵,例如

syms a11 a12 a21 a22

A=[a11 a12;a21 a22]

就可以获得一个矩阵符号变量A。
  定义符号变量后,workspace中出现相应的变量名,图形不是数值变量的田字形,而是方框里有个立方体,双击后可以看到行列数。

2.jpg

3.字符串
    比数值、符号更为简单的就是字符串了,其定义方法是以单引号开头和结尾,例如

a='hello world'

就定义了一个字符串a,其值为你好世界。matlab中较为特殊的是,字符串可视为行向量,例如

  1. b='hello '
  2. c='world'
  3. a=[b c]

也可以获得字符串a,其值为你好世界。另外,有时也可以将字符串视为矩阵,例如

a=['ab';'cd']

但这种用法很罕见,同时要求各行字符串长度一样,否则将违反矩阵行列数规定。
    当然字符串的值也可以是特殊符号,比如

  1. ',

就定义了逗号,而最特殊的就是定义单引号,因为单引号会和字符串定义中的单引号混淆,因此matlab中用两个单引号表示一个单引号,也就是

  1. a=''''

 

表示a是一个字符变量,值是一个单引号。语句中第一和第四个单引号是字符串类型的开头和结尾,中间两个单引号用来表示一个单引号。
    定义字符串变量后,workspace中出现相应的变量名,图像是方框里写了ch,双击后可以看到行列数。

3.jpg

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MATLAB基础学习(二)-变量类型与赋值 的相关文章

  • 使用 R2010b 中的符号工具箱来求解和/或 linsolve

    我前几天问了一个问题here https stackoverflow com questions 20317038 matlab linear congruence solver that supports a non prime modu
  • 如何获取MATLAB句柄对象的ID?

    当我尝试使用时出现问题MATLAB 句柄对象 http www mathworks com help techdoc ref handle html作为关键值MATLAB 容器 Map http www mathworks com help
  • 从筛查乳腺 X 光检查数字数据库 (DDSM) 获取数据

    我正在尝试以可读格式获取 DDSM 数据集 有谁有 DDSM heathusf 程序的工作版本 可以在 Linux 或 Windows 上正常运行吗 我知道 DDSM 的 jpeg 程序有一个适用于 linux 的工作版本 位于http w
  • Matlab颜色检测

    我试图一致地检测同一场景的图像之间的某种颜色 这个想法是根据颜色配置文件识别一组对象 因此 例如 如果给我一个带有绿色球的场景 并且我选择绿色作为我的调色板的一部分 我想要一个具有反映它检测到球的矩阵的函数 任何人都可以为这个项目推荐一些
  • 动态调整自定义刻度数

    Taking SO 的一个例子 https stackoverflow com a 7139485 97160 我想根据当前视图调整轴刻度 这是默认行为 除非设置自定义的刻度数 下图展示了由此产生的行为 左侧是默认行为 右侧是带有自定义刻度
  • 如何为已编译的 MATLAB 创建安装程序并要求用户接受我们的许可条款?

    我正在 MATLAB 中编写程序分发给 Windows 用户 我使用 MATLAB 编译器和 MATLAB r2014a 版本来创建程序 我可以使用 MATLAB 应用程序编译器创建 Windows 安装程序 并且它的工作效果可以接受 但是
  • 从 MATLAB 调用 Java?

    我想要Matlab程序调用java文件 最好有一个例子 需要考虑三种情况 Java 内置库 也就是说 任何描述的here http docs oracle com javase 6 docs api 这些项目可以直接调用 例如 map ja
  • 在 MATLAB 中模拟 C++ 模板

    我试图找出创建 C 模板或 Java 通用对象的替代方案的最佳方法 出于多种不同的原因 我过去曾多次想这样做 但现在我想做的是为几个相关的类创建 saveobj 和 loadobj 函数 我的想法是 我想要一组通用的例程来创建默认结构 然后
  • 命令 A(~A) 在 matlab 中的真正作用是什么

    我一直在寻找找到矩阵非零最小值的最有效方法 并在论坛上找到了这个 设数据为矩阵A A A nan minNonZero min A 这是非常短且高效的 至少在代码行数方面 但我不明白当我们这样做时会发生什么 我找不到任何关于此的文档 因为它
  • Matlab:条形图中缺少标签

    使用 Matlab 2012 和 2013 我发现设置XTickLabel on a bar图表最多只能使用 15 个柱 如果条形较多 则标签会丢失 如下所示 绘制 15 个条形图 N 15 x 1 N labels num2str x d
  • matlab中无限while嵌套在for循环中

    我想做一个while循环 嵌套在for在 Matlab 中循环以查找数据中不同对之间的距离 我的数据具有以下形式 ID lon lat time 1 33 56 40 89 803 2 32 45 41 03 803 3 35 78 39
  • 在 MATLAB 中绘图后恢复轴

    从文本文件绘制多种方法的输出后 未显示轴的右侧和上侧 我需要拥有它们并将它们加粗 就像当前的轴一样 绘制的数据来自存储每种方法数据的文件 每个数据文件都是一个 256x2 文件 包含 0 1 之间的值 第一列是精度 第二列是召回率 figu
  • 通过 cuFFT 进行逆 FFT 缩放

    每当我使用 cuFFT 绘制程序获得的值并将结果与 Matlab 的结果进行比较时 我都会得到相同形状的图形 并且最大值和最小值位于相同的点 然而 cuFFT 得到的值比 Matlab 得到的值大得多 Matlab代码是 fs 1000 s
  • 像matlab一样在python中连接数组而不知道输出数组的大小

    我正在尝试在 python 中连接数组 类似于 matlab array1 zeros 3 500 array2 ones 3 700 array array1 array2 我在 python 中做了以下操作 array1 np zero
  • 绘制布朗运动 matlab

    首先 我只想说我不太习惯使用matlab 但我需要一个作业 我应该创建一个 布朗运动 我的代码目前如下所示 clf hold on prompt Ge ett input size input prompt numParticles inp
  • 在矩阵中找到叉的最快方法

    定义 A i j 1 是十字的中点 如果元素A i 1 j 1A i 1 j 1A i j 1 1A i j 1 1 这些元素和中点一起形成矩阵 A 中的十字 其中 A 至少是一个 3 3 矩阵 并且i j 0 假设上图是 8 8 矩阵 A
  • 氡变换线检测

    我正在尝试检测灰度图像中的线条 为此 我在 MATLAB 中使用 Radon 变换 我的 m 文件的示例如下所示 我可以使用此代码检测多行 我还使用线条的移位和旋转属性来绘制线条 但是 我不明白在获取rho和theta值后如何获取检测线的起
  • 如何在Matlab中将图像从笛卡尔坐标更改为极坐标?

    我正在尝试将图像的像素从 x y 坐标转换为极坐标 但我遇到了问题 因为我想自己编写该函数 这是我到目前为止所做的代码 function newImage PolarCartRot read and show the image image
  • matlab中优先级队列的实现方法

    matlab中有没有提供minpriorityqueue功能的库 import java util PriorityQueue import java util public class MyQueue Comparator
  • Matlab下降低图像质量

    问候 我正在尝试找到一种简单的方法来处理图像 以便将其质量从 8 位降低到 3 位 实现这一目标的最简单方法是什么 干杯 如果要线性缩放 只需将每个像素值除以 255 7 即 如果原始图像存储在矩阵 I 中 则让低分辨率图像 J I 255

随机推荐

  • .gitignore是干什么的?

    Git忽略文件 gitignore详解 在工程中 并不是所有文件都需要保存到版本库中的 例如 target 目录及目录下的文件就可以忽略 在Git工作区的根目录下创建一个特殊的 gitignore文件 然后把要忽略的文件名填进去 Git就会
  • Nacos启动异常与SpringBoot整合异常记录

    1 nacos启动异常 问题描述 Bean instantiation via factory method failed nested exception is org springframework beans BeanInstanti
  • 【Microsoft Azure 的1024种玩法】七十五.云端数据库迁移之快速将阿里云RDS SQL Server无缝迁移到Azure SQL Database中

    简介 本篇文章主要介绍了如何快速将阿里云RDS SQL Server无缝迁移到Azure SQL Database中 前期文章 Microsoft Azure 的1024种玩法 一 一分钟快速上手搭建宝塔管理面板 Microsoft Azu
  • 华为OD机试真题-修建高铁最低成本【2023Q1】

    题目描述 高铁城市圈对人们的出行 经济的拉动效果明显 每年都会规划新的高铁城市圈建设 在给定城市数量 可建设高铁的两城市间的修建成本列表 以及结合城市商业价值会固定建设的两城市建高铁 请你设计算法 达到修建城市高铁的最低成本 注意 需要满足
  • Go语言入门【09】结构体

    结构体 相比于Java 在Go语言中没有类的概念 但是多了结构体 结构体与Java中的类很像 是表示一系列同一类型或不同类型的数据构成的数据集合 例如可以将学生抽象成一个结构体 每一个学生有以下属性 Name 姓名 Age 年龄 Gende
  • 【前端】实现File、Blob、FormData文件分片上传:

    文章目录 一 效果 二 实现 一 效果 二 实现
  • Android进阶2之 阴影制作(Shadow)

    阴影制作 包括各种形状 矩形 圆形等等 以及文字等等都能设置阴影 阴影制作是什么原理呢 其实很简单 你需要设置阴影的东西被看作一个主层 然后在主层下面画一个阴影层 阴影制作涉及到一个重要函数 public void setShadowLay
  • GPIO 模式配置

    浮空 顾名思义就是浮在空中 上面用绳子一拉就上去了 下面用绳子一拉就沉下去了 开漏 就等于输出口接了个NPN三极管 并且只接了e b c极 是开路的 你可以接一个电阻到3 3V 也可以接一个电阻到5V 这样 在输出1的时候 就可以是5V电压
  • 环境搭建Cocos2d-x学习之创建Android工程和编译

    http www cnblogs com lhming archive 2012 06 27 2566467 html 安装好 相应的环境之后 我们便可以开始创建cocos2d x 的android 工程了 进入cocs2d x目录 用文本
  • 人生之路漫长

    人生不同的时间会遇到不同的人和事 你不知道这些事会对你以后产生什么影响 只希望后面有好的收获
  • Selenium2+python自动化10-登录案例

    前言 前面几篇都是讲一些基础的定位方法 没具体的案例 小伙伴看起来比较枯燥 有不少小伙伴给小编提建议以后多出一些具体的案例 本篇就是拿部落论坛作为测试项目 写一个简单的登录测试脚本 在写登录脚本的时候呢 先要保证流程能跑起来 然后才是去想办
  • angular:路径找不到时会跳回主页

    本地起服时 如果输入的路径无法匹配现有规则 则会跳转至主页 带来一定困扰 最好是统一显示或者导航至特定页面 以便debug const routes Routes path component PageNotFoundComponent
  • 合肥工业大学 汇编语言程序设计 高分实验代码

    感觉最困难的就是写汇编代码了 当时成功完美运行的时候兴奋的像当年第一次 Hello World 一样 且几乎所有关键之处都有注释 需要的朋友自取 链接 https pan baidu com s 1q4nVJ7aK4JEPQ F6PH45R
  • 线程常见方法

    目录 线程常见的方法 设置优先级 Join方法 Sleep方法 setDaemon 线程常见的方法 starto 启动当前线程 表面上调用start方法 实际在调用线程里面的run方法 run 线程类继承Thread类或者实现Runnabl
  • WIN10下各种软件字体模糊解决

    WIN10下uvision字体模糊解决 有时会出现软件模糊的情况 如图 解决方法很简单 重新打开工程我们就能发现字体已经变清晰了 该方法适用于解决大部分win10软件字体模糊的问题 而不仅是keil 有时会出现软件模糊的情况 如图 以我经常
  • 中国太阳能热水器市场营销模式探析与品牌格局调研报告2022版

    中国太阳能热水器市场营销模式探析与品牌格局调研报告2022版 HS HS HS HS HS HS HS HS HS HS HS HS 修订日期 2021年11月 搜索鸿晟信合研究院查看官网更多内容 第一章 太阳能热水器相关概述 1 1 太阳
  • 几分钟教你搞明白vuex的五大属性及其使用方法

    一 认识vuex 1 什么是vuex 我们使用一条数据去管理一个视图 那么这个数据我们就称之为 状态 2 vuex是做什么的 Vuex是一个集中式的存储管理中心 vuex中可以用来存储 数据 状态 vuex也是一个状态管理中心 它也可以进行
  • js——判断是否是链接格式

    JavaScript无法直接判断一个属性是否是链接 但是可以通过检查属性的值是否符合链接的格式 来初步判断该属性是否是一个链接 通常情况下 链接的URL地址以 http 或 https 开头 因此我们可以用正则表达式来匹配该属性的值是否符合
  • LCD背光调节实验

    目录 LCD 背光调节简介 硬件原理分析 实验程序编写 编译下载验证 编写Makefile 和链接脚本 编译下载 不管是使用显示器还是手机 其屏幕背光都是可以调节的 通过调节背光就可以控制屏幕的亮度 在户外阳光强烈的时候可以通过调高背光来看
  • MATLAB基础学习(二)-变量类型与赋值

    matlab解决问题的最基本思路是建立脚本文件 那么脚本文件的第一段就是定义一些变量 这和C语言等编程思想是一样的 matlab提供的变量类型很多 最基础的是三种 数值变量 符号变量 字符串 其他的类型还有cell table等 这里仅说明