Se trece o matrice la o funcție (Matlab) okolonauchnom software

farmec Matlab doar în lucrul cu matrice. În mod implicit, totul în jurul valorii de o matrice. Chiar și un singur număr, de fapt, o matrice de 1x1. Pass întreaga matrice: în funcție, și vice-versa.

x = pi: .01: pi; // Setați o serie de argumente de la incremente pi pi 0,01
y = sin (x); // calcula sinusul pentru toate valorile lui x imediat - de asemenea, o matrice
plot (x, y); // trage un grafic al unei funcții y = sin (x)

Consultați elementele de matrice astfel:

x (7) // a 7 matrice elementului x
x (1: 3: 15) x // elemente de matrice de la 1 la 15 de la pasul 3, adică 1, 4, 7, 10, 13
x (# 91; # 93 1,2,11,28;) // 1, 2, 11 și 28 elemente
x (lungime (x) / 2: end-1) // elementele de matrice pornind de la mijloc la penultima

2, exemplele 3 și 4 a reveni matrice

Matlab, în ​​cele mai multe dintre ciclurile pot fi înlocuite (și va lucra mult mai repede) operații cu matrice

de exemplu, a redus la două linii:

x1 = q1: loden: q2;
x2 = fun (x1); // notă că Aplic la intrarea întregii matrice de funcții x1


Scopul codului pe ciclul nu am înțeles.
NB: Nu recomandat pentru utilizare ca indici, acestea sunt rezervate pentru unitatea imaginară, și, astfel, suprascrie variabile. Personal, prefer să păstreze tradiția, dar nu ia aceste variabile pentru a utiliza ceva de genul.


Dacă aveți nevoie pentru a transfera numărul și matrice și a reveni matrice de masă, atunci așa și apel


Funcția este descrisă ca

funcție # 91; y1. Yn # 93; = Myfun (x1. XM)


în cazul în care - variabilele returnate de funcția (inclusiv acest lucru poate fi, și matrice), și - de intrare în cauză.

foton. _Ivana. Mulțumesc pentru ajutor. Am pe cineva indus în eroare, spun ei pur și simplu nu pot trece matrice. mai scurt decât el a fost condus să se dea vina a trebuit să verifice :)
Și sarcina a fost de a face vizualizarea comutatorului cu trei poziții cu zonă moartă și histerezis.
Imaginează-ți neliniaritatea

Se trece o matrice la o funcție (Matlab) okolonauchnom software

Asta este de fapt codul, desigur lipsit de tact, dar. ) Vă mulțumesc din nou, contribuția dvs. mare.
Codul de e-b1 este în imagine, este b2-m, c - este.

funcţia nelineynost
disp ( 'Pentru a obține graficul F (sin (x)) și tipul de semnal de intrare 1');
disp ( 'Pentru a obține graficul F (x), iar intrarea de tip 2');
n = input ( 'Select:');
q1 = input ( „Introduceți stânga legat intervalului:“);
q2 = input ( 'Introduceți intervalul de delimitare din dreapta:');
disp ( „Introduceți parametrii elementului neliniare și b (0b1 = input ( 'Introduceți');
b2 = input ( 'Enter b');
c = input ( 'Introduceți valoarea limită | c |');
Syms x;
t = input ( 'Introduceți semnal:');
fun1 = matlabFunction (t);
loden = 0,0001;
jj = 1;
x1 = q1: loden: q2;
x2 = fun1 (x1);
pentru ii = q1: loden: q2 + shag
x3 (jj) = fun1 (ii);
jj = jj + 1;
capăt

comutator n
cazul 1
plot (x2, histerezisul (b1, b2, c, lungime (x3), x3), '- b', x1, x2, ': r')
titlu ( „neliniaritatea Program“);
xlabel ( 'Time, s');
ylabel ( 'amplitudine');
Legenda ( 'F (sinx)', 'Input');
grila pe;
cazul 2
plot (x1, histerezisul (b1, b2, c, lungime (x3), x3), '- b', x1, x2, ': r')
titlu ( „neliniaritatea Program“);
xlabel ( 'Time, s');
ylabel ( 'amplitudine');
Legenda ( 'F (x)', 'Input');
grila pe;
altfel
disp ( 'dor');
capăt

Funcția y = histerezis (b1, b2, c, jj, x)
pentru ii = 1: jj-1
DIF = x (ii + 1) -x (ii);
if (DIF> 0)
if (x (ii)<=-b1)
f = -c;
elseif și (x (ii)> - b1, x (ii)

foton. vă mulțumesc. Impresionant ceea ce ai scris mai sus! A fost doar un laborator, pur ca o introducere în Matlab, și având în vedere o sarcină individuală.
Apropo, am vrut mult timp pentru a explora unele mat.paket, un lucru bun. Calculatorul are un arțar, dar trebuie să utilizeze un 0.000001% din capacitatea sa, desigur, astfel încât sistemku decid dif.ur decid să se joace cu numere complexe (pentru tau) grafică.

-Acum, această formă de scriere a fost impresionat, desigur, eu nu pot judeca imediat cererea sarcina mea, ca trebuie să înțelegeți. Dar motivarea.

Încercați să se ocupe de acest exemplu. Matlab (probabil, ca orice alt limbaj de programare) ar trebui să fie un pic de experiență, altfel nu va fi capabil de a utiliza punctele forte sale și va cui cuie microscop