【发布时间】:2017-08-05 10:21:57
【问题描述】:
我有一个大小为 ZxW 的数组。
Z = 20;
W = 30;
A = 40; %will be used below
size(a)
20 30
然后我应用了两个不同的转换,然后我删除了一个并且我无法返回它。
第一次转换:
b = repelem(a(:,1),A,A);
第二次改造:
c = repmat(a,[1,1,A,A]);
d = c(:,1,:,:);
在这些转换和删除 a(不能用于以下)之后,我想比较 d 和 b 使用
assert( isequal(b,f) )
其中 f 是 d 的转换,它使断言为真。
我的第一个想法是简单的重塑:
f = reshape(squeeze(d),[Z*A,A]);
这不能作为 repelem 和 repmat 以不同的方式移动条目。我该怎么做?
感谢您的关注。
真诚的
卢卡
编辑:更改
c = repmat(a,[A,A]);
与
c = repmat(a,[1,1,A,A]);
【问题讨论】:
-
以后您可以编辑您的帖子进行更正,而不是删除和重新发布。我在这里重新发布我添加到原始帖子的答案。
-
顺便说一句,因为
c是一个二维数组(a是一个二维数组),你可以只拥有d = c(:, 1)。 -
谢谢@crazyGamer,以后我会记住的。
-
当然:)。另外,我的解决方案有效吗?还是您期待别的东西?
-
更改后的文本答案与您的不同;幸运的是,Jan Simon 也提供了帮助。感谢@crazyGamer 抽出宝贵时间。