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 Utenterini
1.420 2 5 13
Master EY
Master EY
Messaggi: 461
Iscritto il: 17 dic 2007, 0:04
Località: Bologna \ Salento
0
voti

[21] Re: Aiuto matrice e ciclo in matlab

Messaggioda Foto Utenterini » 14 set 2010, 23:18

machefai ha scritto:Latex da quello che ho capio è un altro programma del genere...

:mrgreen: Sei un piccolo genio incompreso....
Latex in questo forum e in molti altri serve per scrivere formule, equazioni, sistemi di equazioni e quant'altro concerne l'analisi matematica... (soprattutto libri) pero' capisco che scrivere latex nel motorino di ricerca che vedi in alto a destra e un gesto di enorme fatica.. giustamente hai detto è meglio tralasciare, tanto mica mi serve!

Bene, scervellati tu che io ora sono un po' stanchino. Domani a mente fresca proverò a guardare questo post

Il vettore colonna si fa con l'apice ' quindi fatti il tuo vettore riga e poi dopo alla fine ci metti l'apostrofo '

ma dimmi una cosa... se hai 3 VGM, e 5 p_rif come fai a fare la sottrazione, mi spiego con un esempio

P1 = vgm1 + max[0, prif1 - vgm1] <---- OK
P2 = vgm2 + max[0, prif2 - vgm2] <---- OK
P3 = vgm3 + max[0, prif3 - vgm3] <---- OK
P4 = vgm? + max[0, prif4 - vgm?] <---- KO

capito che ti voglio dire?
rini - \existslectroYou

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

[22] Re: Aiuto matrice e ciclo in matlab

Messaggioda Foto Utentemachefai » 14 set 2010, 23:35

A dire il vero l'ho cercato su google ma pensando che fosse un'applicazione da usare con matlab ho scritto matlab latex e naturalmente mi sono usciti tutti risultati basati sul fatto di passare dati da latex in matlab e quindi ho dedotto che si trattasse di un altro programma del genere.
In realtà mi dovrebbero uscire 15 prezzi ognuno relativo al segmento prescelto e al giorno dato.
Quindi dovrei avere:
P_11 che rappresenta il prezzo relativo al segmento 1 per il giorno 1
P_21 che rappresenta il prezzo relativo al segmento 2 per il giorno 1
P_31 che rappresenta il prezzo relativo al segmento 3 per il giorno 1
P_12 che rappresenta il prezzo relativo al segmento 1 per il giorno 2
e così via...

P_11 = vgm1 + max[0, prif1 - vgm1] <---- OK
P_21 = vgm2 + max[0, prif1 - vgm2] <---- OK
P_31 = vgm3 + max[0, prif1 - vgm3] <---- OK
P_12 = vgm1 + max[0, prif2 - vgm1] <---- OK
e così via....
domattina provo a scrivere qualcosa di sensato e mi dirai se va bene oppure no...

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

[23] Re: Aiuto matrice e ciclo in matlab

Messaggioda Foto Utentemachefai » 15 set 2010, 7:59

Avevo pensato qualcosa del genere...

VGM(1)= numero
VGM(2)= numero dato
VGM(3)= numero dato

Prif(1)= numero dato
Prif(2)= numero dato
Prif(3)= numero dato
Prif(4)= numero dato
Prif(5)= numero dato

for t=1:5
for i=1:3
P(i)(t)= VGM(i) + max (0;(Prif(t)-VGM(i)));
end
end

Ma naturalmente mi da errori l'istruzione nel ciclo...consigli????

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

[24] Re: Aiuto matrice e ciclo in matlab

Messaggioda Foto Utenterini » 15 set 2010, 11:32

Quando scrivi un codice lo puoi insirire tra i tag code please! A te ti da un errore perché scrivere

Codice: Seleziona tutto

P(i)(t)= ....
è scorretto. Il MatLab non lo riconosce, al max potresti utilizzarlo in questo modo come è fatto io! Vedi si ti piace!
Ciao

Codice: Seleziona tutto

VGM = 1:3;
Prif= 1:5;

for y=1:length(Prif)
    for x=1:length(VGM)
        P(x,y) = VGM(x) + max(0, Prif(y) - VGM(x));
    end
end

Forse un piccolo problemino e che non ti esce un vettore colonna, ma una matrice 3x5 (3righe x 5colonne)
rini - \existslectroYou

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

[25] Re: Aiuto matrice e ciclo in matlab

Messaggioda Foto Utentemachefai » 15 set 2010, 11:52

Ma in teoria lui non dovrebbe calcolare il prezzo per il primo del primo segmento del primo giorno e metterelo nella colonna, prezzo del secondo segmento del primo giorno e metterlo nella seconda posizione della colonna? Oppure potrei prendere poi ogni colonna della matrice e inserirla in un vettore colonna e così via per le altre colonne della matrice...cosa ne dici???

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

[26] Re: Aiuto matrice e ciclo in matlab

Messaggioda Foto Utenterini » 15 set 2010, 14:56

Si si quello che dici tu si puo' comodamente fare, cioè quello di spostare righe e colonne e metterle tutte in colonna :D
rini - \existslectroYou

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

[27] Re: Aiuto matrice e ciclo in matlab

Messaggioda Foto Utentemachefai » 15 set 2010, 17:22

Ho solo due questioni che secondo me sono stupide però vabbè..

Ho provato ad usare il tuo ciclo indipendentemente dagli altri cicli che ho nel sistema in questo modo:

Codice: Seleziona tutto

VGM(1)=100
VGM(2)=200
VGM(3)=300
Prif(1)=10
Prif(2)=20
Prif(3)=30
Prif(4)=40
Prif(5)=50

Prif= 1:5;
VGM=1:3;

for y=1:length(Prif)
    for x=1:length(VGM)
        P(x,y) = VGM(x) + max(0, Prif(y) - VGM(x));
    end
end


Quando vado a digitare P(1,1) mi da come soluzione il valore 1 quando invece dovrebbe essere 100. Oppure se digito P(3,5) mi da valore 5 invece di 300.

In poche parole ottengo questa matrice:

Codice: Seleziona tutto

     1     2     3     4     5
     2     2     3     4     5
     3     3     3     4     5


Cercando ho trovato la funzione P(:) che mette tutta la matrice come un unico vettore. Ma il mio problema adesso è che non esce il numero che dovrebbe uscire...

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

[28] Re: Aiuto matrice e ciclo in matlab

Messaggioda Foto Utenterini » 15 set 2010, 17:43

devi togliere le istruzioni

Codice: Seleziona tutto

Prif= 1:5;
VGM=1:3;


questi due istruzioni servivano a me per fare le prove... ma se tu li definisci manualmente uno ad uno allora li puoi togliere. Era solo per definire due vettori in modo superveloce.
Prova a scrivere sul prompt dei comandi
1:3 e vedrai che cosa uscirà fuori: 1 2 3
tre numeri messi dentro un array che mi servivano per fare le tue prove.

togli quelli e riprova
rini - \existslectroYou


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