MATLAB - GNU Octave-zelfstudie
GNU Octave is een programmeertaal op hoog niveau zoals MATLAB en is grotendeels compatibel met MATLAB. Het wordt ook gebruikt voor numerieke berekeningen.
Octave heeft de volgende gemeenschappelijke kenmerken met MATLAB −
- matrices zijn van het fundamentele gegevenstype
- het heeft ingebouwde ondersteuning voor complexe getallen
- het heeft ingebouwde wiskundige functies en bibliotheken
- het ondersteunt door de gebruiker gedefinieerde functies
GNU Octave is ook vrij herdistribueerbare software. U mag het herdistribueren en/of wijzigen onder de voorwaarden van de GNU General Public License (GPL) zoals gepubliceerd door de Free Software Foundation.
MATLAB vs Octaaf
De meeste MATLAB-programma's draaien in Octave, maar sommige van de Octave-programma's draaien mogelijk niet in MATLAB omdat Octave een bepaalde syntaxis toestaat die MATLAB niet doet.
MATLAB ondersteunt bijvoorbeeld alleen enkele aanhalingstekens, maar Octave ondersteunt zowel enkele als dubbele aanhalingstekens voor het definiëren van tekenreeksen. Als je op zoek bent naar een tutorial over Octave, neem dan deze tutorial vanaf het begin door, die zowel MATLAB als Octave omvat.
Compatibele voorbeelden
Bijna alle voorbeelden die in deze tutorial worden behandeld, zijn compatibel met zowel MATLAB als Octave. Laten we proberen het volgende voorbeeld te volgen in MATLAB en Octave, wat hetzelfde resultaat oplevert zonder enige syntaxiswijzigingen −
In dit voorbeeld wordt een 3D-oppervlaktekaart gemaakt voor de functie g =xe -(x 2 + y 2 ) . Maak een scriptbestand en typ de volgende code −
[x,y] = meshgrid(-2:.2:2); g = x .* exp(-x.^2 - y.^2); surf(x, y, g) print -deps graph.eps
Wanneer u het bestand uitvoert, geeft MATLAB de volgende 3D-kaart weer −
Niet-compatibele voorbeelden
Hoewel alle kernfunctionaliteit van MATLAB beschikbaar is in Octave, zijn er enkele functionaliteiten, bijvoorbeeld Differential &Integration Calculus, die niet exact overeenkomen in beide talen. Deze tutorial heeft geprobeerd om beide soorten voorbeelden te geven waar ze verschilden in hun syntaxis.
Overweeg het volgende voorbeeld waarin MATLAB en Octave gebruik maken van verschillende functies om de oppervlakte van een kromme te krijgen:f(x) =x 2 cos(x) voor −4 ≤ x ≤ 9. Hieronder volgt de MATLAB-versie van de code −
f = x^2*cos(x); ezplot(f, [-4,9]) a = int(f, -4, 9) disp('Area: '), disp(double(a));
Wanneer u het bestand uitvoert, plot MATLAB de grafiek −
Het volgende resultaat wordt weergegeven
a = 8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9) Area: 0.3326
Maar om een gebied met dezelfde curve in Octaaf te geven, moet u gebruik maken van symbolisch pakket als volgt −
pkg load symbolic symbols x = sym("x"); f = inline("x^2*cos(x)"); ezplot(f, [-4,9]) print -deps graph.eps [a, ierror, nfneval] = quad(f, -4, 9); display('Area: '), disp(double(a));
MATLAB