为什么空数组可以有非空维度? [复制]

2023-12-12

例如,如果我们写:

x = int8.empty(0,5)

whos x输出:

% Name    Size    Bytes    Class    Attributes
% x       0x5     0        int8     

这样,我们就得到了一个0x5类的空数组int8.

如果内存大小为 0 字节,则预分配包含非空维度的空数组的目的是什么?

在这种情况下

x = int8.empty(0,5)

比更有用

x = int8.empty(0,0)

Does int8.empty(0,5)仍然预分配 5 个“插槽”内存吗?


我遇到过 0×n 向量的实际用例:使用 Matlab 新的声明性属性和参数约束,您可以说“x 必须是 N×1”或“z 必须是 n-” by-3”,将其声明为 (:,1) 或 (:,3)。这允许您以一致的方式表示空集。

这样做还有正式的原因:函数或操作可以根据其输入的维度来定义,例如“采用 m×n 数组并返回 k×n 数组,其中 k = somefunction( m 或其值)”,并且在 k 为零的退化情况下,具有某些非零维度的空数组允许这样的操作,但仍严格遵守其契约。

实际上,对于连接等基本操作,所有空数组通常都是可互换的,并且通常会正常工作或最多会产生警告。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么空数组可以有非空维度? [复制] 的相关文章

  • matlab中类库的全局变量

    我有一些matlab声明的类 我如何声明所有类中都可见的常量 例如 这些常量可以是在所有类的方法中使用的物理常量 首先想到的是使用全局变量 还有更好的办法吗 最好在单独的文件中声明这些常量 包含常量的类是执行此操作的一种很好的干净方法 请参
  • matlab中的排列函数是如何工作的

    这是一个有点愚蠢的问题 但我似乎无法弄清楚排列在 matlab 中是如何工作的 以文档为例 A 1 2 3 4 permute A 2 1 ans 1 3 2 4 到底是怎么回事 这如何告诉 matlab 3 和 2 需要交换 哇 这是我迄
  • 如何找到平面和 3d 矩阵之间的交平面

    如果我有一堆图像并且尺寸如下 size M 256 256 124 我有 3 个点 它们的坐标是 coor a 100 100 124 coor b 256 156 0 coor c 156 256 0 如何创建 M 与这 3 个点定义的平
  • 理解高斯混合模型的概念

    我试图通过阅读在线资源来理解 GMM 我已经使用 K 均值实现了聚类 并且正在了解 GMM 与 K 均值的比较 以下是我的理解 如有错误请指出 GMM 类似于 KNN 在这两种情况下都实现了聚类 但在 GMM 中 每个簇都有自己独立的均值和
  • 如何更改Plotyy第二轴的颜色和字体大小?

    我使用 MATLAB 的plotyy 函数绘制了两条曲线 AX H1 H2 plotyy voltage span amplitude voltage span Ca SR The problem is that I cannot chan
  • 有效地绘制大时间序列(matplotlib)

    我正在尝试使用 matplotlib 在同一轴上绘制三个时间序列 每个时间序列有 10 6 个数据点 虽然生成图形没有问题 但 PDF 输出很大 在查看器中打开速度非常慢 除了以栅格化格式工作或仅绘制时间序列的子集之外 还有其他方法可以获得
  • “Desort”向量(撤消排序)

    在Matlab中 sort返回排序后的向量和索引向量 显示哪个向量元素已移动到以下位置 v ix sort u Here v是一个包含所有元素的向量u 但已排序 ix是一个向量 显示每个元素的原始位置v in u 使用 Matlab 的语法
  • 从开始/结束索引列表创建向量化数组

    我有一个两列矩阵M包含一堆间隔的开始 结束索引 startInd EndInd 1 3 6 10 12 12 15 16 如何生成所有区间索引的向量 v 1 2 3 6 7 8 9 10 12 15 16 我正在使用循环执行上述操作 但我想
  • Matlab Builder JA - 将 Matlab 编译成 Java jar - 免费版本?

    请记住 我对 Matlab 一无所知 Matlab Builder JA 允许开发人员构建 Matlab 应用程序并将其导出到 Java jar 中 太棒了 我只需要生成一个 jar 然后就可以从其他 java 代码中使用它 有谁知道单罐包
  • 如何在 MATLAB 中绘制纹理映射三角形?

    我有一个三角形 u v 图像中的坐标 我想在 3D 坐标处绘制这个三角形 X Y Z 与图像中的三角形进行纹理映射 Here u v X Y Z都是具有三个元素的向量 代表三角形的三个角 我有一个非常丑陋 缓慢且令人不满意的解决方案 其中我
  • 从动态 Java 类路径导入 Java 类时出现 Matlab 编译器 MCC 错误

    我怎样才能得到mcc识别来自用户提供的 Java 库的导入 还是简单地忽略无法解析的导入 我有一个使用 Matlab 编译器构建的 Matlab 代码库 但构建正在中断 因为mcc遇到的时候会报错importMatlab 动态类路径上的 J
  • 使用 MATLAB 正则表达式将重叠模式与捕获进行匹配

    我正在尝试解析如下所示的日志文件 09 May 2009 04 10 29 Starting foo this is stuff to ignore 09 May 2009 04 10 50 Starting bar more stuff
  • 各向异性扩散二维图像[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在二维图像上使用各向异性扩散 我想使用 python 但不介意使用 matlab 或 c 他们有我
  • 在 Matlab 中将变量命名为字符串 [重复]

    这个问题在这里已经有答案了 假设变量 FileName 包含一个字符串 例如 Name1 如何创建名称为 Name1 的变量 本页的示例 4 似乎很相似 但我无法让它工作 这是正确的做法吗 http se mathworks com hel
  • 在Matlab中,是否可以终止脚本,但将其所有内部变量保存到工作区?

    我正在运行一个脚本 但它花费的时间太长 所以我想终止该脚本 然而 它计算了很多数据 我理想情况下不想扔掉这些数据 有没有替代方案ctrl C用什么将内部函数变量保存到工作区 理想情况下我正在寻找一个Matlab键盘快捷键如ctrl C 但如
  • 使用循环绘制多个结果

    我想使用 for 循环绘制原始和窗口的结果 10 50 100 全部在一个图中这是我得到的情节 https i stack imgur com wAixM png below is my code Read data in data csv
  • 如何对函数的输出使用索引? [复制]

    这个问题在这里已经有答案了 可能的重复 如何索引函数返回的 MATLAB 数组而不先将其分配给局部变量 https stackoverflow com questions 3627107 how can i index a matlab a
  • 如何在 Matlab 中绘制连通性/邻接矩阵图?

    我想在 MATLAB 中绘制网络 电网 的结构图 我有一个包含每个分支的往返节点的列表 我没有节点的坐标 并且每次模拟的系统拓扑都会发生变化 我还需要能够为各种线路 节点分配不同的颜色 以可视化电压问题或过载等 类似于我使用传记 下面的代码
  • 错误:超出了程序允许的最大变量大小。使用 sub2ind 时

    请建议如何解决这个问题 nNodes 50400 adj sparse nNodes nNodes adj sub2ind nNodes nNodes ind ind 1 1 ind is a vector of indices Maxim
  • Matlab中带误差条的直方图

    我想将误差条放在条形图中 每个条形上方 我试过 bincentres 85 10 85 nelements 1 4 14 24 46 57 63 63 174 147 69 49 22 9 4 2 1 0 err sqrt nelement

随机推荐