>> A={1 2;2 3}
A =
[1] [2]
[2] [3]
>> A=[1 2;2 3]
A =
1 2
2 3
我认为它们本质上是相同的东西吗?
{}
表示单元格。 []
表示数组/矩阵。
[]
是一个与数组相关的运算符。数组可以是任何类型 - 数字数组、字符数组(字符串)、结构体数组或单元数组。数组中的所有元素必须是相同类型!
例如:[1,2,3,4]
{}
是一种类型。想象一下,你想把不同类型的项目放入一个数组中 - 一个数字和一个字符串。这可以通过一个技巧实现 - 首先将每个项目放入一个容器{}
中,然后用这些容器创建一个数组 - 单元数组。
例如:[{1},{'Hallo'}]
使用简写符号表示为{1,'Hallo'}
在您的示例中,将相同类型(双精度)的对象放入单元数组中是不必要的。
A = [1 2 3;4 5 6;7 8 9];
[3 5 7]*A*[2 3 5]'
ans =
915
C = {'The' 'quick' 'brown' 'fox' 'jumps' 'over' 'the' 'lazy' 'dog'};
C是一个包含9个元素的单元数组。我们可以在其中放置任何类型的变量。
C = {'asfghhrstyjtysj', 1:5, magic(4), sqrt(-1)}
C =
'asfghhrstyjtysj' [1x5 double] [4x4 double] [0 + 1i]
如果将其与面向对象编程相关联,cells {} 就像对象,[] 用于数组。
{}
内后,会成为数据类型为 cell
的单元格或元素。在 []
中的元素保留其数据类型,并形成该数据类型的数组。下面是一些示例:p = ['my', 'string'];
q = [int8(1), int8(2), int8(3)];
r = [0.11, 0.22, 0.33];
s = {'my', 'string'};
t = {1,2,3};
u = {0.11, 0.22, 0.33};
v = {int8(1), int8(2), int8(3)};
>> whos
Name Size Bytes Class Attributes
p 1x8 16 char
q 1x3 3 int8
r 1x3 24 double
s 1x2 240 cell
t 1x3 360 cell
u 1x3 360 cell
v 1x3 339 cell