小编Ser*_*nko的帖子

为什么这个Octave代码不起作用?

Y是长度的矢量N,从包含数字110.作为示例代码,您可以使用:

Y = vec(1:10);
Run Code Online (Sandbox Code Playgroud)

我正在编写必须创建N x 10矩阵的代码,每行由全零组成,除了1仅在与向量中的数字对应的位置Y.因此,1Y10000000000,30010000000,等等.

这种方法有效:

cell2mat(arrayfun(@(x)eye(10)(x,:), Y, 'UniformOutput', false))
Run Code Online (Sandbox Code Playgroud)

我的下一个想法是"优化",所以eye(10)不是生成N时间,我写了这个:

theEye = eye(10);
cell2mat(arrayfun(@(x)theEye(x,:), Y, 'UniformOutput', false))
Run Code Online (Sandbox Code Playgroud)

但是,现在Octave给了我错误:

error: can't perform indexing operations for diagonal matrix type
error: evaluating argument list element number 1
Run Code Online (Sandbox Code Playgroud)

为什么我会收到此错误?怎么了?

奖金问题 - 您是否看到了更好的方式来做我正在做的事情?我是否尝试优化Octave的制作工作?

matrix octave

6
推荐指数
1
解决办法
1884
查看次数

标签 统计

matrix ×1

octave ×1