Pregunta

Tengo tres matrices, todos del mismo tamaño:

xout        % cell array
xin         % numeric array of doubles
b           % logical array

¿Cómo puedo tomar los elementos de Xin que corresponden a los índices, donde B es verdadero, y asignarlos a los lugares correspondientes en xout?

>> xout = {'foo', 'bar', 'baz', 'quux'};
>> xin = [1, 2, 3, 4];
>> b = (xin ~= 2);       % yields [1 0 1 1] in this case
>> xout{b}=xin(b);
??? The right hand side of this assignment has too few values 
to satisfy the left hand side.

>> xout(b)=xin(b);
??? Conversion to cell from double is not possible.
¿Fue útil?

Solución

Se debe utilizar la función de num2cell para convertir la mano derecha lado a un conjunto de células antes de asignarlo a xout:

xout(b) = num2cell(xin(b));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top