incI=zeros(length(featInd),length(tempInd));
for f = 1:length(featInd)
incI(f,:) = tempInd + featInd(f);
end
for k=1:length(featInd)
h([incI(k,:)]') = h([incI(k,:)]')+ 1;
end

2 件のコメント

jgg
jgg 2016 年 1 月 26 日
You need to provide more information. What is h? What is featInd? What is tempInd? How are they structured?
Parag Patil
Parag Patil 2016 年 1 月 26 日
featInd=[1,24636] row vector
tempInd=[1,12332] row vector
h=[14593760,1] coloumn vector

サインインしてコメントする。

 採用された回答

Honglei Chen
Honglei Chen 2016 年 1 月 26 日
編集済み: Honglei Chen 2016 年 1 月 26 日

1 投票

Here is an example you can try
featInd = 1:24636;
tempInd = 1:12332;
incI = bsxfun(@plus,featInd(:),tempInd);
As to the second loop, I could be wrong but that looks just like a histogram for me, so you can probably do something like
[incU,~,incInd] = unique(incI(:),'stable');
h = zeros(14593760,1);
h(incU) = h(incU)+accumarray(incInd,ones(numel(incInd),1));

2 件のコメント

Honglei Chen
Honglei Chen 2016 年 1 月 26 日
Updated the code with correct dimension, although the dimension of h may depend on what you have in featInd and tempInd
Parag Patil
Parag Patil 2016 年 1 月 27 日
Thanks Honglei Chen tried your approach for second loop. Works for smaller values of tempInd & featInd. For large values unique function gives out of memory error when executed on GPU.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Loops and Conditional Statements についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by