Probelma Strano

di il
2 risposte

Probelma Strano

Buongirono,
ho un problema particolare. Spero di risucire a speigarlo.

mettiamo che io abbia tre variabili scalari numeriche x y z e che voglia stamparle a video
x=1
y=2
z=3

e di volerle stampare a video in questo modo con questo comando display('le mie variabili sono x y z'). Come posso fare?
chiramente scrivendo così mi uscirà il messaggio 'le mie variabili sono x y z" e non 'le mie variabili sono 1 2 3"

Mi serve tutto ciò perché perché devo fare in modo che matlab impartisca dei comandi ad un altro programma esterno, ma è difficile da spiegare

grazie a tutti

2 Risposte

  • Re: Probelma Strano

    In pratica questo è quello che deco fare

    my_variable=cambia perché all'interno di un ciclio

    comandi={
    'NACA my_variable '
    ''
    'OPER'
    'VISC ON'
    'RE'
    '160000'
    'ITER'
    '1000'
    'PACC'
    'polare.txt'
    ''
    'A 1'
    };

    id = fopen('comandi.dat', 'w+');
    fprintf(id, '%s\n', comandi{:});
    fclose(id);


    Devo definire la variabile comandi che scriverò dentro il file comandi.dat. tuttavia la variabile my_variable è un numero che cambia e devo fare in modo che venga riscritta nel file ogni volta.
    Il problema è che con questo codice lui mi scrive non il calore della variabile ma il carattere my_variable.

    Sono disperata
  • Re: Probelma Strano

    Allora, per rispondere alla prima domanda:

    puoi usare la funzione disp i diversi modi, a seconda del formato che desideri, per esempio:
    x=1
    y=2
    z=3
    
    disp(['Le mie variabili sono: ' num2str([x,y z])])
    disp(['Le mie variabili sono: x=' num2str(x) ', y=' num2str(y) ', z=' num2str(z)])
    
    Puoi anche usare la funzione "sprintf"
    str=sprintf('Le mie variabili sono: x=%f\ty=%5.3f\tz=%e',x,y,z)
    
    In questo caso puoi definire il formato con il quale scrivere i valori (intero, float, ...), il numero di cifre, ecc.

    Puoi anche usare una combinazione delle due:
    str=sprintf('Le mie variabili sono: x=%f\ty=%5.3f\tz=%e',x,y,z);
    disp(str)
    
    Per rispondere alla seconda domanda:

    per stampare il valore della variabile puoi scrivere:
    ['NACA ' num2str(x)]
    Inserito all'interno di un loop:
    input_array=[x y z]
    for i=1:length(input_array)
       my_varaible=input_array(i)
       comandi={
          ['NACA ' num2str(x)]
          ''
          'OPER'
          'VISC ON'
          'RE'
          '160000'
          'ITER'
          '1000'
          'PACC'
          'polare.txt'
          ''
          'A 1'
          }
    end
    
    Hope this helps.

    P. S.: neanche al Sabato ti concedi una pausa?
Devi accedere o registrarti per scrivere nel forum
2 risposte