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 ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by