Related to comparing two vectors
9 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
chaaru datta
el 23 de Oct. de 2023
Respondida: Fabio Freschi
el 23 de Oct. de 2023
Hello all, In my work I came across a situation where I have two vectors of dimension 8 X 1 each.
These vectors have all zero values except at any two rows.
My query is how to compare the non-zero positions of these two matrices in MATLAB.
Any help in this regard will be highly appreciated.
2 comentarios
NAVNEET NAYAN
el 23 de Oct. de 2023
From your query, it appears that you want to find the location of non-zero values from both vectors and then compare it (correct me if I am wrong). Can you please explain what kind of comparison do you want?
Dyuman Joshi
el 23 de Oct. de 2023
@chaaru datta, Is this question the same as - https://in.mathworks.com/matlabcentral/answers/2037316-extract-indices-of-vector?s_tid=srchtitle ?
Respuesta aceptada
Fabio Freschi
el 23 de Oct. de 2023
You can compare the two complete vectors (you also compare zeros, but who cares?)
% data
v1 = [0 0 0 4 5 0 0 0].';
v2 = [0 0 0 4 6 0 0 0].';
v3 = [0 0 0 4 5 0 0 0].';
% engine
v1eqv2 = isequal(v1,v2)
v1eqv3 = isequal(v1,v3)
or you can compare nonzero indices and values
% data
v1 = [0 0 0 4 5 0 0 0].';
v2 = [0 0 0 4 6 0 0 0].';
v3 = [0 0 0 4 5 0 0 0].';
% find nonzeros
[idx1,val1] = find(v1);
[idx2,val2] = find(v2);
[idx3,val3] = find(v2);
% engine
v1eqv2 = isequal(idx1,idx2) && isequal(val1,val2)
v1eqv3 = isequal(idx1,idx3) && isequal(val1,val3)
If you only want to check if the nonzero positions are the same
% data
v1 = [0 0 0 4 5 0 0 0].';
v2 = [0 0 0 4 6 0 0 0].';
% find nonzeros
idx1 = find(v1);
idx2 = find(v2);
% engine
v1eqv2pos = isequal(idx1,idx2)
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Elementary Polygons 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!