【发布时间】:2018-02-25 19:53:24
【问题描述】:
我正在使用 MATLAB R2015a。在 MATLAB 环境中使用 Java LinkedList 时,添加行向量然后检索它们似乎会将它们转置为列向量。例如,
import java.util.LinkedList
x = [285 252 100 67]
y = [280 252 107 71;
374 157 72 48]
z = [284 253 103 68]
LL = LinkedList();
LL.add(x);
LL.add(y);
LL.add(z);
xn = LL.remove()
yn = LL.remove()
zn = LL.remove()
xn, yn and zn 产生以下结果:
xn =
285
252
100
67
yn =
280 252 107 71
374 157 72 48
zn =
284
253
103
68
仅当原始向量严格为1 x n 时才会发生这种情况。有没有办法防止这种情况发生而不在每个remove() 末尾添加检查条件?
【问题讨论】:
-
x = reshape([285 252 100 67],1,1,[])也会发生这种情况。因此,add方法似乎从添加的数组中删除了任何前导维度(在add之后检查LL.toArray),并且与Matlab 不同,即使x是一行,它也会这样做 -
LL.add({x});和LL.add(@()x);在 Octave 又名javaMethod ("add", LL, {x})中工作。所以xn=LL.remove();out = xn{1}或xn=LL.remove();out = xn();
标签: java arrays matlab linked-list