You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

计算机内存中[]与[n×0]空数组的差异及MATLAB相关技术问题

MATLAB空数组与自定义类相关问题

问题背景

我曾提问《何时需要使用empty方法?该方法有何优势?》并得到解答,但衍生出更多疑问。该解答提供了两个参考问题:《MATLAB中[]与[1x0]的差异》《为何空数组可拥有非零维度》,这些内容让我产生更多困惑,因此希望从操作系统、内存等底层视角获得专业解答。

核心问题

  • 执行A = ColorInRGB.empty(5,0);是否得到5个空元素?为何该对象内存占用为0,但执行A = ColorInRGB.empty(1000000000000000000000000000, 0)会报“Requested array exceeds maximum variable size”错误?为何存在n×0空数组?何时需使用这类数组?
  • 为何b*a结果为[],a*b结果为0?

后续跟进疑问(针对Martin Rosenau的回复)

  • MATLAB内置类是否存在empty方法无法修改的隐藏属性?例如double.empty(5,0)与double.empty(0,5)可正常相乘,但自定义ColorInRGB类的空数组相乘时提示“'ColorInRGB' 类型的操作数不支持运算符 '*'”,如何让自定义类实现类似内置类的空数组乘法?
  • 推测MATLAB内部会存储空数组的维度等信息,但尝试properties(A)、mc=?A等方法无法查看double对象的维度属性,该如何获取?

内容的提问来源于stack exchange,提问作者bokabokaboka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 00:04:52