gpt4 book ai didi

matlab - size() 返回 1,其中矩阵维度不应存在

转载 作者:行者123 更新时间:2023-12-02 05:42:55 24 4
gpt4 key购买 nike

如果我输入 X = rand(2,3) 然后 size(X,1)size(X,2) 产生预期的结果。如果我输入 ndims (X),我会得到预期的二维。

但是,size(X, k) == 1,其中 k 是任何整数 > 3。为什么会出现这种情况?

最佳答案

如果大小的行为要保持一致,这就必须发生。我们将向量视为大小为 1xn 或 nx1。当然方向很重要,否则 MATLAB 可以简单地告诉您向量的长度为 n。在后一种情况下,存在尾随单例维度,因此隐式地存在无限多个尾随单例维度。所以列向量的大小实际上是 nx1x1x1...,行向量的大小是 1xnx1x1...

标量也是如此。如果标量的大小是 1x1,那么它的大小一定是 1x1x1x1x...

Size 必须告诉您对象的大小,它应该在哪里停止?我想如果您要从头开始重新设计 MATLAB,您可能会决定不报告任何尾随的单一尺寸。那么列向量会被报告为维度 n,而行向量的维度为 1xn?老实说,我实际上更喜欢被告知列向量的维度为 nx1。但它在逻辑上必须是维度 nx1x1x1...

无论如何,很久以前,MATLAB 不允许您在数组中索引超出两个维度的索引。高维数组已经存在了至少 20 年左右,但仍有许多遗留代码仍然有用。 (我有 25 多年前写的代码,现在仍在使用。)你不想破坏现有代码。

关于matlab - size() 返回 1,其中矩阵维度不应存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17292795/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com