<p><code>containers.Map</code>类不支持与数值数组相同的数组串联(部分原因是<code>Map</code>类重载了一些数组访问函数)。因此,您不能生成<code>Map</code>对象的数组(尽管在尝试垂直连接时缺少错误消息)。</p>
<h2><code>containers.Map</code>对象的单元格数组</h2>
<p>但是,您可以创建<code>Map</code>对象的单元格数组;您只需要注意语法。你已经很接近了,但我想这是你想要的:</p>
<pre><code>>> a = {};
>> a = [a, {dictA}]
a =
[3x1 containers.Map]
>> a = [a, {dictA}]
a =
[3x1 containers.Map] [3x1 containers.Map]
>> a = [a, {dictA}]
a =
[3x1 containers.Map] [3x1 containers.Map] [3x1 containers.Map]
>> a{1}('first')
ans =
1
</code></pre>
<p>我们本可以用分号来垂直连接它们<code>a = [a; {dictA}]</code></p>
<h2>单元格数组、<code>{}</code>和<code>[]</code></h2>
<p>我的想法是,<code>{}</code>用于将内容放入单元格(也可以将它们取出),而{<cd8>}是也可以在单元数组上工作的串联操作。</p>
<p><code>a = {}</code>将<code>a</code>指定为空单元格数组。</p>
<p><code>a = [a, {dictA}]</code>将<code>dictA</code>放入一个单元格,然后将这个1x1单元格数组与单元格数组<code>a</code>连接起来。</p>
<p><code>a = [{a}, {dictA}]</code>将把<code>a</code>放在另一个单元格数组中,导致您遇到一个奇怪的嵌套单元格数组。</p>
<p><code>a{1}</code>返回单元格数组<code>a</code>中第一个单元格的内容,在本例中是一个<code>Map</code>对象。</p>
<p>在我看来,单元数组和各种括号/括号的使用是学习MATLAB时最令人困惑的事情之一。</p>
<h2>小心!这些都是浅显的复制品</h2>
<p>注意,这个MATLAB称之为“handle类”,这意味着<code>a{1}</code>,<code>a{2}</code>,和{<cd14>}都是指向同一对象的指针/引用。因此:</p>
^{pr2}$
<p>请注意,所有3个尺寸都增加了。只是想提醒您,以防这与Python中的行为不同(我不知道Python中的行为是什么)。</p>