[MatLab] Generazione di un vettore random con dei vincoli
Salve a tutti,
avrei bisogno di un consiglio per risolvere il seguente problema con MATLAB:
Vorrei generare un vettore di lunghezza variabile ma pre-specificata che possa assumere solo 3 valori (ad esempio 1,2,3) con i seguenti vincoli probabilistici:
La probabilità che il numero generato all'iterazione i-esima sia 1 dove essere pari al 21%, la probabilità che sia un 2 deve essere pari al 59% ed infine la probabilità che sia un 3 deve essere pari al 20%.
Ogni consiglio o spunto è ben accetto, vi ringrazio in anticipo collaborazione e per il tempo che vorrete spendere per darmi una mano
avrei bisogno di un consiglio per risolvere il seguente problema con MATLAB:
Vorrei generare un vettore di lunghezza variabile ma pre-specificata che possa assumere solo 3 valori (ad esempio 1,2,3) con i seguenti vincoli probabilistici:
La probabilità che il numero generato all'iterazione i-esima sia 1 dove essere pari al 21%, la probabilità che sia un 2 deve essere pari al 59% ed infine la probabilità che sia un 3 deve essere pari al 20%.
Ogni consiglio o spunto è ben accetto, vi ringrazio in anticipo collaborazione e per il tempo che vorrete spendere per darmi una mano

Risposte
Se n è la dimensione che ti interessa e A il vettore che vuoi creare, puoi fare qualcosa come il seguente (non l'ho testato):
In alternativa puoi usare un ciclo..
R = rand(1, n) A = zeros(1, n) A(R <= 0.21) = 1 A(R > 0.21 && R <= 0.8) = 2 A(R > 0.8) = 3
In alternativa puoi usare un ciclo..
Grazie mille per il suggerimento, è stato molto utile

@Apatriarca : la notazione compatta che tu hai usato è stupenda! Non sapevo che matlab la supportasse.
Mi sapresti dire il nome tecnico di tale "syntax sugar"?
Mi sapresti dire il nome tecnico di tale "syntax sugar"?