Pagina 1 di 3
Aiuto matrice e ciclo in matlab
Inviato: 14 set 2010, 17:03
da machefai
Devo creare una matrice ed un comando in matlab ma non so da dove mettere mano:
devo creare una matrice che pone sulla prima riga tanti 1 quanti sono i segmenti da analizzare e tanti zeri per riempiere la riga formata dai segmenti X i giorni. Per la riga successiva mette tanti zero quanti i segmenti + tanti 1 quanti i segmenti e infine tutti zero per terminare la riga. E così via per una numero di righe pari al numero di giorni. Naturalmente i segmenti ed i giorni sono dei numeri dati ma che volendo posso cambiare quindi mi serve un codice che possa essere applicato a qualsiasi dato mi viene assegnato.
La seconda cosa che mi serve è creare un ciclo che mi applica un numero dato + il massimo tra 0 e la sottrazione fra il numero dato ed un altro numero assegnato
Grazie per l'attenzione che mi avete prestato
Re: Aiuto matrice e ciclo in matlab
Inviato: 14 set 2010, 17:21
da rini
quindi per ogni riga (cioè giorni) conosci quanti segmenti hai? Inoltre mi devi dire quant'è la lunghezza massima della riga. Mi devi dire il numeri di elementi che ci sono.
faccio un esempio per vedere se ho capito:
sono 3 giorni, il primo giorno 4 segmenti, il 2° ci sono 2 segmenti, il 3° ci sono 6 segmenti, quindi dovrebbe usire una cosa del genere?
Quindi vorresti una cosa che faccia questo?
Re: Aiuto matrice e ciclo in matlab
Inviato: 14 set 2010, 20:53
da machefai
Per ogni giorni ho sempre lo stesso numero di segmenti. Quindi se per il primo giorno avrò tre segmenti anche il secondo ed il terzo ne avro tre. La lunghezza massima della riga dev'essere uguale ai giorni per i segmenti quindi se ho 3 segmenti e 5 giorni la riga deve avere 15 elementi.
Dovrebbe uscire una cosa del genere:
1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
Re: Aiuto matrice e ciclo in matlab
Inviato: 14 set 2010, 21:19
da rini
Questo ti piace?
Codice: Seleziona tutto
clc; clear all;
seg = 3;
day = 5;
AA=zeros(day,seg.*day);
j=0;
for h=1:day
for i=1:seg
AA(h,j+i)=1;
end
j=seg*h;
end
AA
Re: Aiuto matrice e ciclo in matlab
Inviato: 14 set 2010, 21:29
da machefai
Re: Aiuto matrice e ciclo in matlab
Inviato: 14 set 2010, 21:34
da rini
me lo dovresti dire tu quello che fa questo ciclo. Io ti dico solamente che il comando zeros che una matrice piena zeppa di zeri! Poi quello che deve fare me lo descrivi tu nel prossimo post! Sostituisci i numeri alla lettere e fai il debug mentale :=) Da su forza che sarà facile capirlo, poi dove ti blocchi ti aiutiamo noi!
Re: Aiuto matrice e ciclo in matlab
Inviato: 14 set 2010, 21:42
da machefai
Hai dato il valore 3 alla variabile seg (che eventualmente io ho chiamato i) mentre il valore 5 alla variabile day (che io ho chiamto t)
AA è una matrice formata da zeri con righe pari al numero di giorni e le colonne pari alla moltiplicazione tra giorni e segmenti
j= o (non l'ho capito perché l'hai definito)
Hai introdotto il ciclo per h che va da 1 al numero di giorni
ed hai introdotto un nuovo ciclo con i che va da 1 al numero di segmenti
l'instruzione è rappresentata da AA che è uguale (qui mi sono perso)
e j che è uguale ai segmenti per h
Ho quei due dubbi...
Re: Aiuto matrice e ciclo in matlab
Inviato: 14 set 2010, 21:52
da rini
AA è la matrice tua, quella che serve a te. AA(x,y) indica la posizione della riga x-esima e della colonna y-esima e quindi per forza di cose ho dovuto impostare il primo elemento a 0+1 dove quel 0 è j che ho utilizzato io! in questo modo il primo valore va sempre ed obbligatoriamente nella posizione AA(1,1) = 1 e poi una volta che ho identificato la posizione della matrice la imposto uguale a 1.
Poi lo incremento moltiplicandolo per il seg in questo modo fa quello che desideri tu.
Re: Aiuto matrice e ciclo in matlab
Inviato: 14 set 2010, 21:57
da machefai
Praticamente hai definito h come il numero di segmenti quindi lui sa che ad ogni riga della matrice deve mettere 1 tanti quanti sono i segmenti, poi poiché hai impostato j+1 si sposta nella riga successiva tanto quanti sono i segmenti. Giusto??
Re: Aiuto matrice e ciclo in matlab
Inviato: 14 set 2010, 22:04
da rini
h sono i giorni, infatti nel ciclo l'ho fatto variare da 1 a day per l'appunto!
poi sì per ogni riga ho traslato tutto ed in questo modo si ripete