【发布时间】:2018-01-31 20:53:11
【问题描述】:
我正在尝试使用 California ND Datastet 实现 vlsh,它由 701 张照片组成。 10 个主题在一个 txt 文件中记录了哪些照片几乎是重复的,我们也有相关矩阵。 图像是 RGB 的,我将它们缩小为 20x20。我创建了一个 20x20x3x701 的 4 维数组。于是我尝试reshape,得到一个1200x701的矩阵,但问题是reshape不能保持原矩阵的顺序。 我尝试在线搜索,大多数建议是使用“Permute”,但在我看来这不适合我的情况。
我可以贴出matlab代码:
`
path='C:\Users\franc\Desktop\stage\californiaND\prova*.jpg';
path2='C:\Users\franc\Desktop\stage\californiaND\prova';
d=dir(path);
a=[];
for m=1:length(d)
a=cat(4,a,imread(strcat(path2,d(m).name)));
end
r=reshape(a,[],701);
r=double(r);
L = lshConstruct( r, 10,4);`
【问题讨论】:
-
您希望数据相对于输入的顺序是什么?
-
我希望将同一图像的每个矩阵连接起来。所以一个 1200 像素的矩阵,用于 701 张图像。
-
是的,但是第 2 和第 3 维应该按什么顺序折叠到第 1 维中?重塑不会随机化顺序...
-
看起来问题是你创建了一个 4D 矩阵......从一开始就创建你想要的,而不是从 4D 矩阵
-
@AnderBiguri 我该怎么做?我在 3 通道中有二维矩阵。无论如何,我必须重塑,或者至少我认为。你能帮助我吗?还是谢谢你
标签: matlab matrix multidimensional-array reshape locality-sensitive-hash