gpt4 book ai didi

matlab - 如何迭代matlab中稀疏矩阵中的元素?

转载 作者:行者123 更新时间:2023-12-05 09:21:23 24 4
gpt4 key购买 nike

我正在为 Matlab 中的 LDPC 信念传播解码器编写代码。我遵循以下指定的算法: http://www.ece.umd.edu/~tta/resources/LDPC.pdf第 6 页。

我想使用稀疏矩阵来实现这个目标。在此期间,我想遍历只有几个矩阵的大型矩阵。我的问题是如何只迭代矩阵中的那些?

我会更具体:假设我有以下 matlab 代码:

for row_index = 1 : row_num
for coloum_index = 1 : col_num
if parity_check_matrix(row_index, coloum_index)
messages_llr_matrix(row_index, coloum_index) = ...
code_word_aprior_prob(coloum_index);
end
end

此代码采用向量“code_word_aprior_prob”并将其值分配给矩阵“messages_llr_matrix”中非零的行。现在,我想使用稀疏矩阵执行此操作。

parity_check_matrix 是一个稀疏矩阵。

最佳答案

假设您有一个稀疏矩阵 S。您可以使用

遍历其非零元素
[ii,jj,ss] = find(S);

for k=length(ii)
%// A nonzero element of S: ss(k) = S(ii(k),jj(k))
end

虽然我不确定这会有多快。

在您的特定情况下,您可能会这样做

[ii,jj] = find(parity_check_matrix);
for k = 1 : length(ii)
messages_llr_matrix(ii(k), jj(k)) = ...
code_word_aprior_prob(jj(k));
end

当然你可以将iijj重命名为row_indexcolumn_index

关于matlab - 如何迭代matlab中稀疏矩阵中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32903572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com