Estoy teniendo problemas con la adición de una etiqueta a las filas de una matriz. Este es el código que tengo actualmente:

Probability = ['Hole 1', US_par3_Win, par3_Draw, EU_par3_Win;
               'Hole 2', US_par3_Win, par3_Draw, EU_par3_Win]

He añadido las etiquetas con comillas simples, pero estoy recibiendo un error. Alguien podría guiarme en la dirección correcta? Gracias!

  • Sería de gran ayuda si usted se pega el mensaje de error en su pregunta, junto con los valores de US_par3_Win, etc.
InformationsquelleAutor ajj | 2010-11-03

3 Comentarios

  1. 3

    MATLAB las matrices sólo puede almacenar elementos del mismo tipo. Matrices de células en el otro lado, no tienen esta restricción. Le sugiero que mantenga la matriz como es, y añadir otra celda de la matriz de la variable para almacenar la etiqueta de cada fila. Ejemplo:

    M = [1 2 3; 4 1 2; 4 1 1];
    labels = {'row1'; 'row10'; 'row100'};
    
    %# display 2nd row and its label
    M(2,:)
    labels{2}
    • Hmm, esto no parece funcionar para mí. Puedo obtener: ans = 4 1 2 ans = row10 Cuando se ejecuta el código
    • Eso es exactamente lo que espero que sea!! Por supuesto, puede dar formato a la salida un poco mejor con la función FPRINTF por ejemplo.. tal vez usted debe explicar qué es lo que estás tratando de hacer?
  2. 2

    Si las variables, tales como US_par3_Win, son escalares, los siguientes trabajos:

    Probability = {'Hole 1', US_par3_Win, par3_Draw, EU_par3_Win;...
                   'Hole 2', US_par3_Win, par3_Draw, EU_par3_Win}

    Sin embargo, si las variables son, por ejemplo, 18-por-1 matrices, entonces usted debe combinarlos creando primero una matriz de Agujero nombres

    holeNames = arrayfun(@(x)sprintf('Hole %i',x),(1:18)','UniformOutput',false);  %'#

    Y, a continuación, catenate como este

    Probability = [holeNames,num2cell(US_par3_Win),...
                   num2cell(par3_Draw),num2cell(EU_par3_Win)];

    Sin embargo, lo más probable es mucho mejor si en lugar de escribir 'Hole 1', 'Hole 2' etc, sólo tienes que poner el número del hoyo en la primera columna de la probability de la matriz, es decir,

    Probability = [1, US_par3_Win, par3_Draw, EU_par3_Win;...
                   2, US_par3_Win, par3_Draw, EU_par3_Win]

Dejar respuesta

Please enter your comment!
Please enter your name here