2.1 MATLAB的数据类型

  • 每种数据类型都是以矩阵的形式存在的
  • 数据类型:数值型、字符型、元胞型、结构体、函数句柄
  • 数值型包含:双精度类型、单精度类型、整型
  • 支持不同数据的转换

2.1.1 变量与常量

1.变量

  • 无须事先声明
  • 无须指定变量类型,MATLAB会自动根据变量的赋值与相关操作来确定变量的类型
  • 命名规则:
    • 区分大小写
    • 必须字母开头,可以包含字母、数字、下划线
    • 变量名长度不超过63个

2.常量

常量 说明
pi 圆周率
Inf 无穷大
NaN 不定值(0/0)
eps 浮点运算的相对精度
realmax 最大的正实数
realmin 最小的正实数
ans 默认变量名
i,j 虚数单位,定义为√-1
  • 定义变量名避免与常量名相同

2.1.2 数值型数据

1.MATLAB的数值精度

MATLAB的数值精度为2-1074,任何绝对值小于2-1074的实数都视为0

2.MATLAB的显示精度

显示精度:MATLAB所能显示的有效位数;默认下,整型则以整型显示,实数 以保留小数点后4位的浮点数显示

显示格式控制;format,digits,vpa

eps
ans = 2.2204e-16 eps
format short
ans =2.220446049250313e-16 eps
format long
ans =2.2204e-16 eps
format rat
ans =2.2204e-16
eps
digits()
ans = / vpa(pi)
ans =3.141592654 vpa(pi,)
ans =3.1415926535897932385

2.1.3 字符型数据

syms a  b %创建符号变量

字符串可以进行加减乘除

2.1.4 元胞数组

元胞数组的基本组成单元是元胞,元胞可以存放任意类型、任意大小的数组,同一元胞数组中个元胞的内容可以不同

元胞数组可以通过赋值语句直接定义(使用{}括号),也可以由cell函数预先分配存储空间再对元胞元素逐个赋值(节约内存占用,提高执行效率)

元胞的创建例如:

a = {[,,],ones(),'matlab'}
a = {× double} {× double} {'matlab'} b = cell(,);
b{,} = [,,];
b{,} = ones();
b{,} = 'matlab';
b = {× double} {× double} {'matlab'}

2.1.5 结构体

也可以存放不同类型的数据类型

和元胞的差异:元胞通过值传递,结构体通过指针传递

定义:直接赋值,或通过struct函数定义

clc,clear,close all;
A.b1 = [,,];
A.b2 = ones();
A.b3 = 'matlab'; B = struct('b1',,'b2',ones(),'b3',',matlab'); >> A A = 包含以下字段的 struct: b1: [ ]
b2: [× double]
b3: 'matlab' >> B B = 包含以下字段的 struct: b1:
b2: [× double]
b3: ',matlab'

2.1.6 函数句柄

用于间接调用一个函数的MATLAB的值或者数据类型

提高函数调用的速度,扩大子函数和私用函数的可调用范围,并迅速获得同名重载函数的位置、类型信息

创建:通过命令fhandle = @ functionname 来创建,如:trig_f = @ sin 或者 sqr = @ (x)x.^2

使用:fhandle(arg1, arg2, ...argn) 或者 fhandle()(无参数)

clc, clear, close all;
sin_f = @sin
a = sin_f(pi); myadd = @(x,y) x+y^;
b1 = myadd(,); a = / b1 =

2.1.7 数据类型间转换

对于图像而言,一般读入为uint8 型数据,需要转换为double类型

im1 = im2double(img)

注意理解一下代码:

clc,clear,close all;
a = '';
b = double(a);
b1 = str2num(a);
c = *a;
d = *b;
e = *b1; a =
b =
b1 =
c =
d =
e =

2.1 MATLAB的数据类型的更多相关文章

  1. MATLAB常用数据类型的转换

    一直以来,在使用MATLAB进行运算的过程中,经常会用到对图像的各种处理,因此需要对图像进行数据转换,因此对经常用到的转换进行整理,方便查看. 1.uint8转化为double用来方便图像的运算: d ...

  2. Matlab基本数据类型

    本文转载自:http://hi.baidu.com/xmf6227/blog/item/97ca2ddf98f1b61f495403cb.html Matlab中有15种基本数据类型,主要是整型.浮点 ...

  3. MATLAB 的数据类型

    在MATLAB中有15种基本的数据类型: 8种整型数据类型.单精度浮点型(float).双精度浮点型(double).逻辑型(logical).字符串型(char).单元数组型(cell).结构体类型 ...

  4. matlab中数据类型

    在MATLAB中有15种基本数据类型,分别是8种整型数据.单精度浮点型.双精度浮点型.逻辑型.字符串型.单元数组.结构体类型和函数句柄.这15种基本数据类型具体如下. 有符号整数型:int8,int1 ...

  5. [转]MATLAB cell数据类型

    细胞型数据类型(cell)使不同类型和不同维数的数组可以共存,细胞型数组实际上可以认为是一种以任意形式的数组为分量的多维数组. 1.细胞型数据的定义 1)直接赋值定义:细胞型变量在定义时需要使用大括号 ...

  6. Matlab编程知识点

    容易忘记的小知识点: Matlab程序首行程序: clear:close all:clc:程序运行开始最好清理下之前残留的各种数据,不然matlab可能会出错. clear(清理变量空间),close ...

  7. 接触Matlab5年一个总结(Matlab要掌握的一些要点 )

    阅读目录 前言 Matlab的开发环境与简单介绍 Matlab的常见命令 Matlab的灵魂-矩阵操作 Matlab的.m或.fig的编程与技巧 从大二开始接触到matlab,讲真,这是一个我觉得很良 ...

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

    不记得上一次写超过20行的matlab程序是什么时候了,大概是2013年吧,那个时候写过2篇文章,实际用到了 一些matlab的内容,超过200行的matlab程序应该要追溯到2011年了,最近为了帮 ...

  9. C语言与MATLAB接口 编程与实例 李传军编着

    罗列一下以前自己学习C语言与MATLAB混编的笔记,顺便复习一遍. <C语言与MATLAB接口 编程与实例 李传军编着>(未看完,目前看到P106) 目录P4-8 ************ ...

随机推荐

  1. day10 mysql常用操作

    一. 目录 1.mysql的简介 2.增删改查操作 3.单表查询 4.多表查询常见的三种方式 5.pymysql模块操作数据库 二. 内容 一.mysql的简介  概述:mysql是一个关系型数据库, ...

  2. Hyperledger Fabric(5)ChainCode的编写步骤

    链码(chaincode) 会对 Fabric应用程序  发送的交易做出响应,执行代码逻辑,与 账本 进行交互. 再复习下他们之间的逻辑关系: Hyperledger Fabric 中,Chainco ...

  3. 【异常】Caused by: java.lang.IllegalStateException: Zip64 archives are not supported

    1 自己打包Spring boot项目依赖了第三方的Phoenix jar包过大,导致启动后报错 参考了这篇博客:https://cloud.tencent.com/developer/ask/135 ...

  4. deep_learning_Function_tensorboard的使用

    数据可视化(网页能打开,但是没有数据):https://jingyan.baidu.com/article/e9fb46e1c55ac93520f7666b.html

  5. 执行nvidia-smi出错

    执行nvidia-smi出错 NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make su ...

  6. cubase 的FX轨道使用方法

    FX为辅助通道!

  7. 转C++之stl::string写时拷贝导致的问题

    前几天在开发某些数据结构到文件的 Dump 和 Load 功能的时候, 遇到的一个 bug . [问题复现] 问题主要出在 Load 过程中,从文件读取数据的时候, 直接使用 fread 的去操作 s ...

  8. 吐槽一下jsoup

    网络爬虫的本质就是通过域名加上特定的路由方式与远程资源建立一个短暂的连接,然后通过io流的方式读取.然后说一下jsoup,jsoup可以说是目前的爬虫工具包里面对java底层的工具类封装最简单的一种了 ...

  9. 安装theano遇到的问题

    嗯,听说keras虽然说有TensorFlow有backend就够了,在TensorFlow和theano之间来回切换还是会有用的,然后又补安装了theano 之前解了权限了,所以不需要sudo 直接 ...

  10. json_decode 和 json_encode 区别

    json_decode: json字符串转json对象json_encode: json对象转json字符串 json对象: { "id": 68, "order_no& ...