如何编写这个没有for循环的matlab代码

如何编写这个没有for循环的matlab代码,matlab,Matlab,我有以下matlab代码: messages_llr_matrix = sparse(ROW_NUM, COL_NUM); for index = 1 : length(II) messages_llr_matrix(II(index), JJ(index)) = ... code_word_aprior_prob(JJ(index)); end 如果矩阵中的元素不为零,则此代码获取向量并将其复制到稀疏矩阵行 matlab告诉我不要在前面

我有以下matlab代码:

    messages_llr_matrix = sparse(ROW_NUM, COL_NUM);
    for index = 1 : length(II)
        messages_llr_matrix(II(index), JJ(index)) = ...
        code_word_aprior_prob(JJ(index));
    end
如果矩阵中的元素不为零,则此代码获取向量并将其复制到稀疏矩阵行

matlab告诉我不要在前面的matlab代码中使用索引,因为这样会使它非常慢。 我想以以下方式构建
消息\u llr\u矩阵
矩阵:

messages_llr_matrix = sparse(II,JJ,code_word_aprior_prob,ROW_NUM,COL_NUM);

这不是一个有效的解决方案。

问题似乎是,在后一种代码中,
II(ind)
JJ(ind)
code\u-word\u-aprior\u-prob(ind)
应该一起使用,但在您的惯例中,您需要
code\u-word\u-aprior\u-prob(JJ(ind))

试着打电话

messages_llr_matrix = sparse(II,JJ,code_word_aprior_prob(JJ),ROW_NUM,COL_NUM);

sparse
设计用于接收向量。在评论之前,请尝试使用代码。做
code\u word\u aprior\u prob(JJ)
只会索引到向量中生成另一个向量。@yaron,如果不是因为我的机智、敏锐的眼睛和令人敬畏的谦虚,调试你的问题会非常困难。如果你下次问问题,确保1。明确你的目标是什么,2。指定您得到的结果,3。引用任何错误消息(如果适用),4。尝试其他人建议的解决方案。