Pagina 1 di 1

matrici

Inviato: 2 ott 2010, 22:07
da Stellas82s
Sapete come scrivere in matlab/scilab data una matrice A=[1 2;3 4 ] come generare casualmente ogni singolo elemento? ho visto che ci sono rand e grand ma quelle creano matrici già randomiche io vorrei solo una scelta casuale di elementi all'interno di una mia matrice.
Grazie

Re: matrici

Inviato: 4 ott 2010, 20:56
da RenzoDF
Stellas82s ha scritto:Sapete come scrivere in matlab/scilab data una matrice A=[1 2;3 4 ] come generare casualmente ogni singolo elemento? ho visto che ci sono rand e grand ma quelle creano matrici già randomiche io vorrei solo una scelta casuale di elementi all'interno di una mia matrice.
Grazie


La domanda NON è chiara! ... cosa vuol dire "data una matrice "

\text{A=}\left( \begin{matrix}
   1 & 2  \\
   3 & 4  \\
\end{matrix} \right)

? ...

Se ti serve un range diverso (da 0-1) per esempio nell'intervallo (b,a) dovrai scrivere
>>B=a+(b-a)*rand(2,2) %in Matlab


Ad ogni modo se vuoi avere solo il primo elemento della matrice casuale (supponiamo di volerlo nel range 2-5 distribuito uniformemente) puoi scrivere
>>D=[2+(5-2)*rand(),1;3,4] //in Scilab
>>D=[2+(5-2)*rand,1;3,4] % in Matlab

... oppure randn in Matlab (rand(2,2,'normal') in Scilab) se vuoi una distribuzione "normale",ma ricorda comunque che la sequenza di numeri casuali viene normalmente preceduta (per es in Matlab) da una istruzione
>> rand('state',j) % Matlab
>> rand('seed',j) // Scilab
dove j specifica il punto iniziale della sequenza ... e che per farla partire casualmente (pure lei) devi usare
>> rand('state', sum(100*clock)) %in Scilab non ricordo

BTW ricordo che mentre rand(2) in Matlab è equivalente a rand(2,2) in Scilab solo l'ultima scrittura fornisce una matrice 2x2