Ciclo for con matlab

unitom
ciao gente del forum,
è la prima volta che scrivo quindi spero di non fare errori e formulare la mia domanda in maniera corretta.
devo scrivere un ciclo con matlab e sto riscontrando abbondanti difficoltà.
devo dargli le seguenti istruzioni:
- M = [a b c d e] ho 5 macchine
- B = 15 una quantità da affidare alle macchine (buffer, piccoli magazzini)

devo dargli il comando "prendi un elemento a caso in B (es: 7) e assegnalo ad una macchina a caso (es : c)".

alla seconda iterazione
M1 diventa M-l'elemento c ovvero M1 = [a b d e]
B1 diventa B-la quantità assegnata (es: 15-7 = 8).

in modo tale che la somma delle quantità assegnate alle macchine si uguale a B, è possibile anche assegnare 0 ad alcune macchine (del tipo 15 ad a e niente alle altre macchine).

quello che voglio ottenere sono una serie di configurazioni del tipo [5 6 3 1] [15 0 0 0]
i vettori sono da 4 elementi perché sono 4 i posti in cui devo mettere le quantità,a monte della prima macchina e a valle dell'ultima ci sono due magazzini di capacità infinita.

questo è il mio problema,spero fortemente che per qualcuno da queste parti sia una banalità.
intanto vi ringrazio in anticipo per l'attenzione.
ciao!

Risposte
unitom
forse imput più semplice da dare:
A = 20
b = [unidrnd(A) unidrnd(A) unidrnd(A) unidrnd(A)]
b è un vettore di 4 elementi,ogni elemento è un numero compreso tra 1 e 20 intero, preso a caso.
ho 2 problemi:
1- unidrnd(A) prende elementi tra 1 e 20,vorrei poter prendere anche lo zero.
2- devo imporre che la somma degli elementi di b faccia 20.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.