matlab - 如何将标签向量转换为 Octave 中的二进制向量?

标签 matlab octave

假设我有 A=ones(10,1)*10 那么这是做什么 eye(10)(A,:) ??

我知道 eye 给出了 10,10 单位矩阵,但我不太确定上面的代码在做什么。 Matlab 中的等效代码是什么?

最佳答案

A=ones(10,1)*10 只是制作一个 10s 的列矩阵(10 行,1 列)。

eye(10) 生成一个 10x10 单位矩阵。

(A,:) 索引到您刚刚制作的单位矩阵中。 A 在这里充当eye(10) 矩阵的数字 索引。假设 A 只是 10。那么 myMatrix(A,:) 将选择 myMatrix 的第 10 行。由于 A 是 10 ,共 10 行,myMatrix(A,:) 选择 myMatrix 的第 10 行,< em>10 次。因此,您从 eye(10) 的第 10 行返回 10 次。

如果您执行 A=ones(5,1)*10 并查看 eye(10)(A,:),可能会减少混淆;请注意,您现在只得到第 10 行的 A 5 次。

您不能在 Matlab 中这样做,因为它不允许您执行一次性 eye(10)(A,:)。您必须分两步完成:

A = ones(10,1)*10
I = eye(10)
I(A,:)

More on various types of matrix indexing in Matlab .

关于matlab - 如何将标签向量转换为 Octave 中的二进制向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9177192/

相关文章:

arrays - 3D 数组中的按维度逻辑索引

matlab - 如何在 matlab 上绘制 3d 不等式

c - 使用 SWIG 创建 Octave 文件

matlab - 在我的傅里叶逆变换中出现尖峰

matlab - 对向量进行排序并计算相同的出现次数

random - Octave - 随机生成数字

octave - 在相同大小的矩阵上“应用自动广播操作”

matlab - Octave 绘图点作为动画

matlab - 如何在 Octave/MATLAB 中标记 X 轴上的点?

c# - 无法在已部署的 matlab dll 中使用 .NET 方法