titulo suptitle subplots general for matlab

matlab - suptitle - encontrar filas coincidentes en la matriz



suptitle matlab (4)

Manera más fácil con repmat :

a = [1 2 3; 4 5 6; 7 8 9]; t = [4 5 6]; [x,y] = size(a); r = all(a==repmat(t,y,1), 2)''

Supongamos que tengo una matriz (mxn) Q y un vector de fila r, por ejemplo

Q = [ 1 2 3 ; 4 2 3 ; 5 6 7 ; 1 2 3 ; 1 2 3 ; 1 2 5 ]; r = [ 1 2 3 ];

¿Cuál es la forma más fácil de obtener un vector lógico (de longitud m) que indica cuáles de las filas en Q son idénticas (para todos los elementos) a la fila especificada r?

En el caso de muestra anterior, eso debería ser

[ 1 0 0 1 1 0 ];


Puede usar ismember y hacerlo en una sola línea:

>> ismember(Q,r,''rows'')'' ans = 1 0 0 1 1 0


a = [1 1 1; 2 2 2; 3 3 3]; b = a(1:2,;); [temp locb] = ismember(a,b,''rows''); b(locb(locb~=0),:) ans = 1 1 1 2 2 2


all(bsxfun(@eq, r, Q),2)''

bsxfun(@eq, r, Q) compara cada fila y devuelve una matriz del mismo tamaño que Q:

>> bsxfun(@eq, r, Q) ans = 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 0

la función all calcula si el resultado de bsxfun es verdadero a lo largo de cada fila por separado. Por lo tanto, regresa:

>> all(ans,2)'' ans = 1 0 0 1 1 0

y sí, también hay un operador de transposición '' para que coincida con la salida de fila deseada