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에 대해 자세히 알아보기

질문:

2016년 1월 26일

댓글:

2016년 1월 27일

Community Treasure Hunt

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

Start Hunting!

Translated by