文章目录

  • 一、元胞数组
    • 1、定义元胞数组
    • 2、生成单位阵
    • 3、生成幻方
    • 4、元胞数组元素赋值
    • 5、元胞数组元素赋值 二
  • 二、元胞数组
    • 1、定义结构体
    • 2、小括号获取元胞数组子数组
    • 3、大括号获取元胞数组值
  • 三、代码示例

一、元胞数组


1、定义元胞数组

元胞数组中的元素可以是不同类型的数据 ;

元胞数组定义 : 使用 cell 定义元胞数组 , 其中的两个参数分别是行数和列数 ;

% 元胞数组定义, 定义一个 2 行 3 列的元胞数组
array = cell(2,3)

执行结果 :

2、生成单位阵

eye 函数用于 生成 nnn 阶单位阵 ;

% 生成单位阵
eye(3)

运行效果 :

3、生成幻方

magic 函数用于生成 nnn 阶幻方 ;

333 阶幻方由 999 个数字组成 3×33 \times 33×3 矩阵 , 横向 , 纵向 , 倾斜方向 , 三个方向上的 333 个数字的总和是相同的 ;

% 生成幻方
magic(3)

运行效果 :

4、元胞数组元素赋值

matlab 中的元胞数组数组索引值从 1 开始 , 主流编程语言 C/C++/Java/Python 等都是从 0 开始 ;

array{2} 指的是元胞数组第 2 个元素 ;

matlab 的二维数组索引优先从列开始 , 第一列, 第二列… , 因此 array{2} 是第一列第二个 ;

代码示例 :


% eye(3) 生成一个 3x3 对角线数值为 1 的单位矩阵
% matlab 中的索引值从 1 开始 , 主流编程语言 C/C++/Java/Python 等都是从 0 开始
% array{2} 指的是元胞数组第 2 个元素
% matlab 的二维数组索引优先从列开始 , 第一列, 第二列...
% 因此 array{2} 是第一列第二个
array{2} = eye(3)

运行效果 :

5、元胞数组元素赋值 二

为第 5 个元素赋值幻方 , 第 5 个元素是第三列第一个元素 ;

代码示例 :

% 为第 5 个元素赋值幻方
% 第 5 个元素是第三列第一个元素
array{5} = magic(3)

执行效果 :

二、元胞数组


1、定义结构体

结构体使用 struct 关键字定义 , 在括号 " ( ) " 之间 , 输入结构体内容 , 结构体中的内容由键值对组成 ;

% 结构体
students = struct('name', {{'Tom', 'Jerry'}}, 'age', [12, 18])

执行效果 : students 结果是 1x1 struct 结构体 ;

获取结构体 name 对应的值 , 取出的是 1x2 的 cell 元胞数组 ;

% 结构体中的 name 对应的值 , 是 1x2 的 cell
students.name

2、小括号获取元胞数组子数组

使用小括号 + 索引值 , 取出元胞数组中的元素 , 结果是子元胞数组 ;

% 结构体中的 name 对应的值的第 1 个元素 , 是 1x1 的 cell
% 使用括号取出的是 cell
students.name(1)

执行效果 :

3、大括号获取元胞数组值

使用大括号 + 索引值 , 取出元胞数组中的元素 , 结果是元胞数组中的值 ;

% 结构体中的 name 对应的值的第 1 个元素的值 , 是字符串
% 使用大括号取出的是数据值
students.name{1}

执行效果 :

三、代码示例



%% 注释% 普通注释%% 1. 数字1 + 22 - 12 * 33 / 2%% 2. 字符和字符串 s= 'a'
str = 'Hello Woirld !'% 获取字符 ASCII 码
abs(s)
% 字符
char(65)
% 数字转字符串
num2str(65)
% 计算字符串长度, 包括空格
length(str)%% 3. 矩阵% 定义矩阵, 行之间的元素使用 空格 或 逗号隔开 , 每行之间使用分号隔开 ;
A = [1,2,3; 4,5,6; 7,8,9;]% 定义矩阵 B , 矩阵值是 A 的转置矩阵
B = A'% 将矩阵按照列放到一列中 , 依次是第一列,第二列 ...
C = A(:)% 逆矩阵, 只有方阵才能求逆矩阵
D = inv(A)% 生成 0 矩阵 , 最后一个 3 代表 3 维矩阵
% 开始的 3 和 2 分别代表 3 行 2 列
E = zeros(3, 2, 3)% 随机生成均匀分布的随机数, 0 ~ 1 区间中
E(:,:,1) = rand(3, 2)% 随机生成均匀分布的随机整数, 0 ~ 20 开区间中
E(:,:,2) = randi(20, 3, 2)% 随机生成正太分布的随机数, 0 ~ 1 区间中
E(:,:,3) = randn(3, 2)%% 4. 元胞数组% 元胞数组定义, 定义一个 2 行 3 列的元胞数组
array = cell(2,3)% 生成单位阵
eye(3)% 生成幻方
magic(3)% eye(3) 生成一个 3x3 对角线数值为 1 的单位矩阵
% matlab 中的索引值从 1 开始 , 主流编程语言 C/C++/Java/Python 等都是从 0 开始
% array{2} 指的是元胞数组第 2 个元素
% matlab 的二维数组索引优先从列开始 , 第一列, 第二列...
% 因此 array{2} 是第一列第二个
array{2} = eye(3)% 为第 5 个元素赋值幻方
% 第 3 个元素是第三列第一个元素
array{5} = magic(3)%% 5. 结构体% 结构体
students = struct('name', {{'Tom', 'Jerry'}}, 'age', [12, 18])% 结构体中的 name 对应的值 , 是 1x2 的 cell
students.name% 结构体中的 name 对应的值的第 1 个元素 , 是 1x1 的 cell
% 使用括号取出的是 cell
students.name(1)% 结构体中的 name 对应的值的第 1 个元素的值 , 是字符串
% 使用大括号取出的是数据值
students.name{1}

【MATLAB】数据类型 ( 元胞数组 | 单位阵 | 幻方 | 结构体 | 元胞数组值获取 )相关推荐

  1. 中的数组怎么转成结构体_PLC知识,什么是数组和结构体?

    今天给大家介绍一下什么是数组,什么是结构体,关于数组我们会介绍数组的定义.它的使用方法,关于结构体我们会介绍结构体的使用.怎么去建立一个结构体等知识,之前也是有部分学员有问过这些问题的,那么都一块儿给 ...

  2. go语言json字符串解析为结构体数组,结构体指针的数组

    废话不多说直接上效果图 完整代码如下 package main import ("encoding/json""fmt" ) // 结构体定义 type rob ...

  3. matlab单元数组与结构体的区别,MATLAB中的结构体和单元数组

    MATLAB中的结构体和单元数组 一.结构: x.real=10 x.imag=5 增加字段 x.scale=1 使用struct函数 s=struct('field1',values1,'field ...

  4. NumPy-快速处理数据--ndarray对象--多维数组的存取、结构体数组存取、内存对齐、Numpy内存结构...

    本文摘自<用Python做科学计算>,版权归原作者所有. 上一篇讲到:NumPy-快速处理数据--ndarray对象--数组的创建和存取 接下来接着介绍多维数组的存取.结构体数组存取.内存 ...

  5. 数组、指针、结构体的总结_吃鱼的小脸猫_新浪博客

    一.结构体和数组的区别 1.定义一个结构体是为方便保存不同类型的数据,而不同类型的数据放在一个结构体中 2.定义数组也是为方便存储大量数据,但数据必须是同一类型 3. 结构体中也包括结构体数组和结构体 ...

  6. 【VS开发】【编程开发】【C/C++开发】结构体中的数组与指针的内存分配情况说明...

    [VS开发][编程开发][C/C++开发]结构体中的数组与指针的内存分配情况说明 标签:[VS开发] [编程开发] 主要是疑惑在结构体定义的数组的内存空间与指针动态分配的内存空间,在地址上连续性.以及 ...

  7. 妙用0元素数组 实现大小可变结构体

    妙用0元素数组 实现大小可变结构体 2008-04-06 20:31 http://hi.baidu.com/phps/blog/item/4de94efbe9595660024f56fb.html ...

  8. Golang之空结构体和零长数组的实践

    空结构体和零长数组(两个复合类型)都仅仅是一个占位符,不占用空间,这里编译器进行了优化,如果结构体或数组的unsafe.sizeof=0则直接返回zerobase. // 必须用key来初始化结构体 ...

  9. C#结构体和字节数组的转换

    在写C#TCP通信程序时,发送数据时,只能发送byte数组,处理起来比较麻烦不说,如果是和VC6.0等写的程序通信的话,很多的都是传送结构体,在VC6.0中可以很方便的把一个char[]数组转换为一个 ...

最新文章

  1. JZOJ #4722 跳楼机 (最短路模型的完美转化)
  2. linux redis WARNING overcommit_memory is set to 0! 解决方案
  3. mailcore(一)
  4. 【jzoj】2018/2/2 NOIP普及组——D组模拟赛
  5. 计算机网络——链路层之信道
  6. xSeries 232双机热备份配置(塔式)
  7. 2.微服务:从设计到部署 --- 使用 API 网关
  8. 用计算机怎么录音,如何用电脑进行录音
  9. 可恨的KYLIN OS:动不动就不支持老机
  10. 大学四年,电脑必备的三个宝藏工具软件
  11. kali免杀工具shellter
  12. Python学习笔记-数据类型(元组 tuple)
  13. 【通过STLINK Utility下载程序和加解密方法】
  14. “JEPG”到“TXT”,魔幻的Loot
  15. Tomcat:Tomcat网站上的core和deployer的区别
  16. 华为路ws5200设置虚拟服务器,华为路由器WS5200如何设置上网 最详细的华为路由器WS5200上网设置方法教程...
  17. Cluster vs Clustering
  18. 【爬虫笔记】关于Beautiful Soup 4
  19. Linux安装第三方Microsoft OneDrive —— abraunegg / onedrive
  20. 本地HTML文件 带参数方案

热门文章

  1. MySQL 重要函数实例
  2. 使用ISA2004发布多个Web站点之二
  3. 【原创】原来你竟然是这样的Chrome?!Firefox笑而不语
  4. xml转json和实体类的两种方式
  5. 虚幻4引擎角色蓝图Character的Movement组件学习
  6. css 字体样式设置
  7. 将oracle冷备份恢复到另外一个数据库实例中
  8. 与html相关的知识点整理
  9. 浙大pat1009题解
  10. js 调用C#.NET后台方法 转载自:http://www.cnblogs.com/lizhao/archive/2010/11/23/1990436.html...