Aiuto matrice e ciclo in matlab

Strumenti informatici per la matematica applicata, le simulazioni, il disegno: Mathcad, Matlab, Scilab, Microcap, PSpice, AutoCad ...

Moderatori: Foto Utenteg.schgor, Foto Utentedimaios

Avatar utente
Foto Utentemachefai
0 2
Messaggi: 19
Iscritto il: 3 ago 2010, 10:24
0
voti

[1] Aiuto matrice e ciclo in matlab

Messaggioda Foto Utentemachefai » 14 set 2010, 17:03

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

Avatar utente
Foto Utenterini
1.420 2 5 13
Master EY
Master EY
Messaggi: 461
Iscritto il: 17 dic 2007, 0:04
Località: Bologna \ Salento
0
voti

[2] Re: Aiuto matrice e ciclo in matlab

Messaggioda Foto Utenterini » 14 set 2010, 17:21

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?

Codice: Seleziona tutto

1 1 1 1 0 0 0 0
1 1 0 0 0 0 0 0
1 1 1 1 1 1 0 0


Quindi vorresti una cosa che faccia questo?
rini - \existslectroYou

Avatar utente
Foto Utentemachefai
0 2
Messaggi: 19
Iscritto il: 3 ago 2010, 10:24
0
voti

[3] Re: Aiuto matrice e ciclo in matlab

Messaggioda Foto Utentemachefai » 14 set 2010, 20:53

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

Avatar utente
Foto Utenterini
1.420 2 5 13
Master EY
Master EY
Messaggi: 461
Iscritto il: 17 dic 2007, 0:04
Località: Bologna \ Salento
0
voti

[4] Re: Aiuto matrice e ciclo in matlab

Messaggioda Foto Utenterini » 14 set 2010, 21:19

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
rini - \existslectroYou

Avatar utente
Foto Utentemachefai
0 2
Messaggi: 19
Iscritto il: 3 ago 2010, 10:24
0
voti

[5] Re: Aiuto matrice e ciclo in matlab

Messaggioda Foto Utentemachefai » 14 set 2010, 21:29

Quello che hai fatto è assurdo e mi piace molto...ma dovresti spiegarmi cosa hai fatto di preciso...ovvero cosa fa di preciso questo ciclo for che hai creato....sempre se non è chiedere troppo.... :D :D :D

Avatar utente
Foto Utenterini
1.420 2 5 13
Master EY
Master EY
Messaggi: 461
Iscritto il: 17 dic 2007, 0:04
Località: Bologna \ Salento
0
voti

[6] Re: Aiuto matrice e ciclo in matlab

Messaggioda Foto Utenterini » 14 set 2010, 21:34

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!
rini - \existslectroYou

Avatar utente
Foto Utentemachefai
0 2
Messaggi: 19
Iscritto il: 3 ago 2010, 10:24
0
voti

[7] Re: Aiuto matrice e ciclo in matlab

Messaggioda Foto Utentemachefai » 14 set 2010, 21:42

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...

Avatar utente
Foto Utenterini
1.420 2 5 13
Master EY
Master EY
Messaggi: 461
Iscritto il: 17 dic 2007, 0:04
Località: Bologna \ Salento
0
voti

[8] Re: Aiuto matrice e ciclo in matlab

Messaggioda Foto Utenterini » 14 set 2010, 21:52

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.
rini - \existslectroYou

Avatar utente
Foto Utentemachefai
0 2
Messaggi: 19
Iscritto il: 3 ago 2010, 10:24
0
voti

[9] Re: Aiuto matrice e ciclo in matlab

Messaggioda Foto Utentemachefai » 14 set 2010, 21:57

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??

Avatar utente
Foto Utenterini
1.420 2 5 13
Master EY
Master EY
Messaggi: 461
Iscritto il: 17 dic 2007, 0:04
Località: Bologna \ Salento
0
voti

[10] Re: Aiuto matrice e ciclo in matlab

Messaggioda Foto Utenterini » 14 set 2010, 22:04

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
rini - \existslectroYou


Torna a “Programmi applicativi: simulatori, CAD ed altro”