当前位置: 首页 > 编程笔记 >

MATLAB单元阵列

乐成济
2023-03-14
本文向大家介绍MATLAB单元阵列,包括了MATLAB单元阵列的使用技巧和注意事项,需要的朋友参考一下

示例

同一类的元素通常可以连接成数组(有一些罕见的例外,例如函数句柄)。数值标量(默认为class double)可以存储在矩阵中。

>> A = [1, -2, 3.14, 4/5, 5^6; pi, inf, 7/0, nan, log(0)]
A =
   1.0e+04 *
    0.0001   -0.0002    0.0003    0.0001    1.5625
    0.0003       Inf       Inf       NaN      -Inf

char在MATLAB中属于类的字符也可以使用类似的语法存储在数组中。这样的数组类似于许多其他编程语言中的字符串。

>> s = ['MATLAB ','is ','fun']
s =
MATLAB is fun

请注意,尽管两者都使用方括号[和],结果类却不同。因此,可以对它们执行的操作也不同。

>> whos
  Name      Size            Bytes  Class     Attributes

  A         2x5                80  double              
  s         1x13               26  char

事实上,该阵列s是不是字符串数组'MATLAB ','is '和'fun',它仅仅是一个字符串-的13个字符数组。如果由以下任何一项定义,您将获得相同的结果:

>> s = ['MAT','LAB ','is f','u','n'];
>> s = ['M','A','T','L','A','B,' ','i','s',' ','f','u','n'];

常规的MATLAB向量不允许您混合使用不同类的变量或几个不同的字符串。这是cell阵列派上用场的地方。这是一个单元格数组,每个单元格可以包含一些MATLAB对象,如果需要,每个单元格中的类可以有所不同。使用花括号{并将其}周围的元素存储在单元格数组中。

>> C = {A; s}
C = 
    [2x5 double]
    'MATLAB is fun'
>> whos C
  Name      Size            Bytes  Class    Attributes

  C         2x1               330  cell

任何类的标准MATLAB对象都可以一起存储在单元格数组中。请注意,单元阵列需要更多的内存来存储其内容。

使用大括号{和可以访问单元格的内容}。

>> C{1}
ans =
   1.0e+04 *
    0.0001   -0.0002    0.0003    0.0001    1.5625
    0.0003       Inf       Inf       NaN      -Inf

请注意,C(1)与有所不同C{1}。后者返回单元格的内容(并double在示例中包含类),而前者返回的单元格数组是的子数组C。同样,如果D是10×5的单元格数组,D(4:8,1:3)则将返回D大小为5×3且类为的子数组cell。而且语法C{1:2}没有单个返回的对象,但是评分器返回两个不同的对象(类似于具有多个返回值的MATLAB函数):

>> [x,y] = C{1:2}
x =
                         1                        -2                      3.14                       0.8                     15625
          3.14159265358979                       Inf                       Inf                       NaN                      -Inf
y =
MATLAB is fun
           

 类似资料:
  • 例4.5.6...2意味着4个意向转到第一个邮箱,5转到第二个邮箱,以此类推。 我如何给出正确的单元数组形式的输入。由于数据和算法都来自同一个库,我想不知何故,我已经在一个形式中的数据很容易转换成单元数组!

  • 主要内容:引用矩阵中的元素,删除矩阵中的一行或一列,矩阵运算,以下是纠正/补充内容:矩阵是数字的二维数组。 在MATLAB中,可以通过在每行中输入元素来创建一个矩形,以逗号或空格分隔数字,并使用分号标记每一行的结尾。 例如,创建一个矩阵 - MATLAB将执行上述语句并返回以下结果 - 引用矩阵中的元素 要引用矩阵的第行和第列中的元素,可以这样书写 - 例如,要引用矩阵的第行和第列中的元素,如上一节所述,可以这样书写 - MATLAB执行上述语句并返回以下结果 - 要引用第列中的

  • 是否可以将范围分配给矩阵。如果将以下零矩阵视为绘图的“网格”: 你能把这个矩阵当作一个网格,这样每个x轴的零点都可以看作一个范围吗?例如,是一个范围是一个范围等。 范围思想也可以应用于列吗? 这样做的目的是,我可以读取单元阵列数据,我已经组织到零矩阵的范围,以产生一个二维直方图。

  • 我有一个存储大型matlab稀疏矩阵(Matlab7.3)的数据文件,需要在python程序中使用。我使用h5py加载这个稀疏矩阵,发现有3个数据结构与稀疏矩阵相关。 假设稀疏矩阵的名称为M,3个数据结构为M['data']、M['ir']、M['jc']。最初我认为M['ir']和M['jc']存储非零项的行索引和列索引,但我刚刚发现M['jc']中存在一些大于稀疏矩阵行数的值。谁能解释一下3数

  • 本文向大家介绍MATLAB索引矩阵和数组,包括了MATLAB索引矩阵和数组的使用技巧和注意事项,需要的朋友参考一下 示例 MATLAB允许使用几种方法来索引(访问)矩阵和数组的元素: 下标索引-您可以在其中分别指定所需元素在矩阵每个维度中的位置。 线性索引-将矩阵视为向量,无论其尺寸如何。这意味着,您可以用一个数字指定矩阵中的每个位置。 逻辑索引-在其中使用逻辑矩阵(以及true和false值的矩

  • 本文向大家介绍MATLAB按元素操作,包括了MATLAB按元素操作的使用技巧和注意事项,需要的朋友参考一下 示例 MATLAB支持(并鼓励)对向量和矩阵进行向量化操作。 例如,假设我们有A和B两个n-by-m矩阵,我们希望C成为相应元素的逐元素乘积(即,)。C(i,j) = A(i,j)*B(i,j) 使用嵌套循环的非矢量化方法如下: 但是,执行此操作的矢量化方法是使用element-wise运算