- ism, a logical array the same size as A saying whether each element of A is in B(:,1), i.e., ism is true where the corresponding element of A exists in B(:,1) and ism is false where the corresponding element of A is not in B(:,1)
- idx, the index in B(:,1) where the first instance of each element of A exists, or 0 if that element of A does not exist in B(:,1)
How does ismember and assert work in this code?
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Previously, I raised a question of how to generate a matrix of only masses; provided that a matrix A is given that contains the object list and a matrix B that contains the objects + their masses. I am new to MATLAB and I want to know how the code works. Thank you!
A = ["C"; "A"; "E"; "F"; "I"]
B = ["A", 1;"B", 34;"C" 56;"D" 32;"E",11;"F",8;"G", 7;"H",9;"I" 77]
[ism,idx] = ismember(A,B(:,1));
assert(all(ism))
result = B(idx,:)
0 comentarios
Respuesta aceptada
Voss
el 2 de Feb. de 2023
[ism,idx] = ismember(A,B(:,1)); returns
Examples to illustrate:
x = [10;50;70];
y = [10;30;50;70];
[ism,idx] = ismember(x,y)
x = [10;50;70];
y = [10;30;10;30;50;70];
[ism,idx] = ismember(x,y)
x = [10;20;70];
y = [10;30;10;30;50;70];
[ism,idx] = ismember(x,y)
assert is used in this case to make sure that all elements of A exist in B(:,1). If that's not the case, an error is thrown, execution of the code stops, and subsequent commands are not executed.
assert(all(ism))
References:
2 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrix Indexing 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!