当索引到具有可变维度矩阵的向量时,我如何指示八度索引是矩阵而不是向量?
例如,在下面的代码中,在第四次迭代中,Octave 将索引视为行向量,并将索引操作的返回值转置为列向量(以匹配被索引的向量而不是使用的向量用于索引)。
当我运行时:
v = rand(16,1);
t = magic(4);
f = @(m)(sum(m, 1));
for i = 4:-1:1
s = t(1:i,:);
f(v(s))
endfor
我得到:
ans =
1.47780 2.28879 1.29786 2.98981
ans =
1.24705 1.31940 0.87484 2.18276
ans =
0.89387 0.55288 0.50312 1.61950
ans = 1.9294
看到在前三次迭代中,答案是行向量,但在最后一次迭代中,答案是单例值。
如何告诉 octave 变量 s 应该是矩阵,而不是向量,并且索引操作的结果应该始终与 s 具有相同的形状?