Creating a loop to search for matching values in two matrices
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
mcl1993
el 10 de Ag. de 2016
Comentada: Azzi Abdelmalek
el 10 de Ag. de 2016
I have two csv files. A is 55473 x 10 and B is 484 x 3. I want to create a loop that goes through column 5 in A, and when the value in the cell equals a value in column 1 in B, i want to multiply it by column 2 and column 3 of the same row in B. I want to repeat this for all values in column 5 of A.
0 comentarios
Respuesta aceptada
Azzi Abdelmalek
el 10 de Ag. de 2016
You can do it without a for loop
[ii,jj]=ismember(A(:,5),B(:,1));
id=nonzeros(jj);
A(ii,5)=A(ii,5).*B(id,2).*B(id,3);
0 comentarios
Más respuestas (1)
Azzi Abdelmalek
el 10 de Ag. de 2016
%-------Example-----------------
A=randi(10,55473,10);
B=randi(10,484,3);
%----------------------------------
for k=1:size(A,1)
idx= find(ismember(B(:,1),A(k,5)),1);
if ~isempty(idx);
A(k,5)=A(k,5)*B(idx,2)*B(idx,3);
end
end
2 comentarios
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!