Vettori e matlab

di il
2 risposte

Vettori e matlab

Buonasera qualcuno mi può spiegare come funzionano le operazioni tra vettori in Matlab? Sto cercando di studiare autonomamente ma ho molti dubbi. Ho cercato su qualche guida online ma non mi sono chiare alcune scritture: riporto degli esempi di codice qui sotto.

Non ho ben compreso come e cosa indicano gli indici tra le parentesi e come essi agiscono nei diversi codici


m=r./d(1:n-1); 

s=sum(m.*c); 
d(n)=d(n)-s; 

q=sum(m.*b(1:n-1));
b(n)=b(n)-q;

x=zeros(n,1); 

x(n)=b(n)/d(n);
x(1:n-1)=(b(1:n-1)-x(n)*c(1:n-1))./d(1:n-1); 


m1=r(1)/d(1);
r(2:n-1)=r(2:n-1)-m1*c(1:n-2);
d(n)=d(n)-m1*c(n-1);
b(n)=b(n)-m1*b(1);

b(n)=b(n)-sum(r(2:n-1).*b(2:n-1)./d(2:n-1));


x=zeros(n,1);
x(2:n)=b(2:n)./d(2:n);
x(1)=(b(1)-sum(c.*x(2:n)))/d(1);

v=[n:-1:1]; 
w=[n-1:-1:1];

y=solve_freccia(d(v),c(w),r(w),b(v));
x=y(v);

Grazie a chi mi aiuterà

2 Risposte

  • Re: Vettori e matlab

    La cosa puù semplice (ed efficace) che puoi fare è eseguire il codice in modalità debug e verificare riga per riga cosa fanno le singole istruzioni.
    Se cancelli il ";" al termine delle istruzioni potrai vedere nella Command Window il risultato di ogni istruzione.

    Per le informazioni sugli indici dei vettori, su come si usano e quale funzionalità abbiano, puoi fare riferimento alla documentazione on-line su "indexing"; un paio di esempi:

    https://www.mathworks.com/company/newsletters/articles/matrix-indexing-in-matlab.html
    https://www.mathworks.com/help/matlab/math/array-indexing.html

    Nello specifico dei tuoi esempi:

    [*] quando gli operatori * / ^ sono preceduti da un punto .* ./ .^ le corrispondenti operazioni sui vettori vengono eseguite "per elemento":
    se "m" è una matrice, ad esempio, m.^2 restituirà una matrice i cui elementi sono ognuno il quadrato di quelli della matrice "m" mentre m^2 restituirà la matrice m*m
    [*] la notazione d(1:n-1) definisce i primi "n-1" elementi del vettore "d", puoi leggere l'istruzione come d(dal primo elemento fino all'elemento n-1)
    [*] l'istruzione v=[n: -1: 1] ed assegna al vettore "v" gli interi da "n" a 1; il valore "-1" al centro dell'espressione, indica il "passo" per cui puoi leggere
    l'istruzione come "i valori da n a 1 con passo -1, se "n" vale, ad esempio, 5, il vettore "v" conterrà 5 4 3 2 1
  • Re: Vettori e matlab

    Grazie per i link e il commento!

    Speriamo di capirci qualcosa!
Devi accedere o registrarti per scrivere nel forum
2 risposte