Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
matlab中的稀疏索引_Matlab_Signal Processing_Sparse Matrix - Fatal编程技术网

matlab中的稀疏索引

matlab中的稀疏索引,matlab,signal-processing,sparse-matrix,Matlab,Signal Processing,Sparse Matrix,我有一个很长的代码,其中充满了以下“如果”,matlab editor给了我如下建议: 此稀疏索引表达式可能很慢 mt = rand(200,200); [c r] = size(mt); T = sparse(r*c,2); for i = 1:c for j = 1:r if(ind(j,i)==1) templat = template + 1; T((i-1)*r+j,2)=100000; en

我有一个很长的代码,其中充满了以下“如果”,matlab editor给了我如下建议:

此稀疏索引表达式可能很慢

mt = rand(200,200);
[c r] = size(mt);
T = sparse(r*c,2);

for i = 1:c 
    for j = 1:r 
        if(ind(j,i)==1)
            templat = template + 1;
            T((i-1)*r+j,2)=100000;
        end
    end;
end;

有什么方法可以让代码更快,并按照matlab的建议去做吗?(代码可能无法运行,因为我只选择了几行并试图显示问题)

嵌套的
for
if
相当于以下矢量化代码:

[jj, ii] = find(ind==1); %// jj is rows, ii is columns
templat = template + numel(ii);
T((ii-1)*r+jj,2) = 10000;

实际上,我必须使用嵌套for循环。你可以在这里看到代码并更正你的答案:@Sam这是一个巨大的代码!你希望我们研究整个代码吗?不,我的意思是,代码不仅仅是上面显示的简单代码。我需要使用嵌套for循环代码,因为我需要indexe@Sam“正确”我的答案在哪种意义上?怎么了?@Sam Matlab的建议是删除for循环!你的for循环和Luis的代码做完全相同的事情。也许这意味着您可以去掉代码中的所有循环!