【MATLAB】数据类型 ( 元胞数组 您所在的位置:网站首页 matlab包络线函数 【MATLAB】数据类型 ( 元胞数组

【MATLAB】数据类型 ( 元胞数组

2023-04-09 18:55| 来源: 网络整理| 查看: 265

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

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

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

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

执行结果 :

2、生成单位阵

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

% 生成单位阵 eye(3)

运行效果 :

3、生成幻方

magic 函数用于生成 n 阶幻方 ;3 阶幻方由 9个数字组成

3 \times 3

矩阵 , 横向 , 纵向 , 倾斜方向 , 三个方向上的 3 个数字的总和是相同的 ;

% 生成幻方 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.name2、小括号获取元胞数组子数组

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

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

执行效果 :

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

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

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

执行效果 :

三、代码示例%% 注释 % 普通注释 %% 1. 数字 1 + 2 2 - 1 2 * 3 3 / 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}


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有