我有一个稀疏的奇偶校验矩阵(由1和0组成),我需要用PM替换每个非零元素(1):维的平方置换矩阵N(通常是一个大整数N)。在零元素的情况下,这些将被相同维度的平方空矩阵替换。用平方置换子矩阵替换基矩阵中的元素
让我与你分享其中我的代码的当前状态为:
这是基本基质中,我想通过置换矩阵,以取代其的:
B = zeros((L + ms) * dc, L * dv);
for i = 1 : 1 : L
for j = 1 : 1 : dv
B(dc*(i-1)+1 : dc*(ms+i), j+dv*(i-1)) = ones(dc*(ms+1), 1);
end
end
我一直告诉的方式,用于通过使用“小区”的对象这样做,这是,则初始化H作为空单元格的阵列,将包含相应的子矩阵:
H=repmat({{}},size(B));
Mc = 500 % Dimension of the permutation matrix
MP=randi([1,5],Mc,Mc); % Definition of one permutation matrix
% It would be desirable that the permutation matrix is different for each replacement
[H{B==0}]=deal(zeros(Mp));
[H{B==1}]=deal(MP);
但有一个问题即将出现 - 我需要这个矩阵作为后续函数的一个参数,并且非常希望它是一个简单的1和0的矩阵(因为我不是很熟悉'单元'结构...但是,正如你所看到的,Mc是一个如此庞大的整数,我不知道这是否可以被处理。
你有这样做有尺寸的原始矩阵(L * MS)直流了Mc,L DV了Mc作为输出的任何其他方式?
这些都是一些参数可以用来试试:
ms = 2;
Mc = 600; % any number (specially big ones) could serve for this purpose
dc = 3;
dv = 4;
L = 15;
提前为您的关注非常感谢,愿你拥有美好的一天。
谢谢Wolfie!显然这个解决了。 – MisterTellini