Diff -funksjonen i matlab

Diff -funksjonen i matlab
Denne artikkelen vil forklare alt du trenger å vite om Matlab Diff () -funksjonen.

Vi vil se hvordan vi implementerer denne funksjonen for å finne forskjellene mellom vektorelementer, rader og kolonner i en matrise. I denne artikkelen vil du også lære hvordan du får omtrentlig derivater av en matematisk funksjon.

Dette vil bli vist gjennom praktiske eksempler med kodefragmenter og bilder som illustrerer de forskjellige måtene å bruke denne funksjonen i flere dimensjoner og med forskjellige typer vektorer og matriser.

Matlab diff funksjonssyntaks

d = diff (x)
d = diff (x, n)
d = diff (x, n, dim)

Matlab diff funksjonsbeskrivelse

Diff () -funksjonen returnerer i “D” forskjellen mellom ett element og teksten til inngangsvektoren eller matrisen “x”. Vi opererer langs en dimensjon når vi kaller diff med en matrise som inngang. Så resultatet i "D" vil være en rekke størrelse N i dimensjonen til N-1-elementer over dimensjonen vi opererer. Dimensjonen vi ønsker å operere på er valgt ved hjelp av inngangen “DIM”. Inngangen “N” er en heltallskalar som setter rekkefølgen på derivater. Denne funksjonen godtar vektor, 2D og flerdimensjonale matriser i “X”, mens inngangene “N” og “Dim” er av positive heltallskalartype. Vi vil se noen praktiske eksempler på denne funksjonen med vektorer og forskjellige matrikstyper nedenfor.

Eksempel 1: Hvordan få forskjellene mellom de tilstøtende elementene i en vektor med MATLAB -funksjonen diff ()

La oss nå se hvordan vi bruker MATLAB -funksjonen, diff, for å finne forskjellene mellom de tilstøtende elementene i vektoren “V”. For å gjøre dette, oppretter vi et skript og skriver følgende kode:

v = [1, 2, 4, 7, 11, 7, 4, 2, 1];
r = diff (v)

I den første linjen i skriptet lager vi 9-elementvektoren "V". Deretter, i den andre kodelinjen, kaller vi diff () -funksjonen og passerer "V" som inngangsargumentet. Siden vi sender en vektor i dette tilfellet, brukes ikke inngangen "Dim".

Som du kan se i følgende figur, viser kommandokonsollen til MATLAB -miljøet at utgangen i “D” er en vektor av forskjellene mellom de tilkoblede elementene til “V”. Du kan se at utgangsvektoren inneholder ett mindre element enn inngangsvektoren.

Eksempel 2: Hvordan bruke "Dim" -inngangen til å operere langs forskjellige dimensjoner med Matlabs diff () -funksjon

I tilfeller der vi jobber med denne funksjonen ved å bruke "Dim" -inngangen med forskjellige dimensjoner, skal "N" -inngangen ikke sendes tomt siden Diff () tar "N" i sitt andre inngangsargument. Hvis denne inngangen ikke brukes, skal en 1 sendes i stedet, som er standardverdien.

Eksempel 3: Hvordan bruke "Dim" -inngangen til å operere langs første dimensjon med Matlab Diff -funksjonen

La oss nå se hvordan vi bruker MATLAB -funksjonen, diff, for å finne forskjellene mellom de tilstøtende elementene i matrisen “M” langs kolonnene eller dimensjonen 1. For dette formålet vil vi lage et skript og skrive følgende kode:

M = magi (5)
r = diff (m, 1, 1)

I den første linjen i manuset bruker vi Magic () -funksjonen for å lage et magisk firkant bestående av en rekke 5 av 5 elementer. I den andre kodelinjen kaller vi diff () -funksjonen, sender "M" som inngangsargumentet og spesifiserer i "Dim" -inngangen som den opererer langs dimensjon 1.

Følgende bilde viser kommandokonsollen med resultatet i “D”. I dette tilfellet er det en rekke fem kolonner med fire rader med forskjellene mellom de sammenhengende elementene langs dimensjon 1 av “M”.

Eksempel 4: Hvordan bruke "Dim" -inngangen til å operere langs andre dimensjoner med Matlab Diff -funksjonen

I dette eksemplet vil vi se hvordan vi skal operere på dimensjonen 2 i matrisen, det vil si langs radene. For å gjøre dette bruker vi det samme kodefragmentet som i forrige eksempel, men denne gangen indikerer vi ved å skrive "dim" slik at det fungerer langs dimensjon 2 eller radene på Magic Square.

M = magi (5)
r = diff (m, 1, 2)

Følgende bilde viser kommandokonsollen med resultatet i “D”. I dette tilfellet er det en rekke fire rader med fem kolonner med forskjellene mellom de sammenhengende elementene langs dimensjon 2 av “M”.

Eksempel 5: Hvordan få de omtrentlige derivater i en funksjon med matlab diff ()

I dette eksemplet vil vi se hvordan vi kan få det omtrentlige derivatet av en sinusbølge ved å bruke diff () -funksjonen, som vi vil bruke for å få forskjellen på y i intervallet x, x+h, og deretter dele det med intervallet h. Deretter vil vi se koden og skriptet for dette eksemplet.

x = 0: 0.01: 2*pi; % h eller delta x = 0.01
y = sin (x);
d = diff (y) / 0.01;
Plott (x (:, 1: lengde (d)), d, x (:, 1: lengde (y)), y)

I det forrige kodebiten oppretter vi først tidsvektoren "x" fra 0 til 2*pi med intervaller på 0.01 i “H”. Deretter lager vi vektoren “y” med sinus av “x” slik at de vil ha samme størrelse. Når bølgen er opprettet, med diff () -funksjonen, vil vi oppnå forskjellene mellom elementene i vektoren “y” i utgangen “d”. Deretter deler vi forskjellene i “D” med “H”, og vi vil få en vektor med derivatet “Y”. Som vi sa i beskrivelsen, er størrelsen på diff () utgangsvektor n-1-elementer større enn inngangsvektoren, og dette skjer hver gang denne funksjonen rekursivt blir brukt gjennom inngangen "n" så "x", og " D ”vil ikke lenger ha kompatible størrelser. Hvis vi ønsker å representere bølgen og dens derivat, er størrelsen på "D" uforenlig med "X". Så vi må definere det etter størrelsen på "D", som vist i den siste linjen i koden. Nedenfor kan du se sinus "y" og den omtrentlige derivatet "D".

Konklusjon

Denne MATLAB -artikkelen forklarte hvordan du bruker Matlab Diff -funksjonen for å finne forskjellen mellom tilstøtende elementer i en matrise eller vektor. For å hjelpe deg med å forstå hvordan du bruker denne ressursen, har vi laget et praktisk eksempel med kodefragmenter og bilder for hver modus og forskjellige dimensjoner der denne funksjonen fungerer. Vi har også sett en beskrivelse av strukturen til funksjonen, inngangs- og utgangsargumentene og datatypen som diff () aksepterer. Vi håper du fant denne Matlab -artikkelen nyttig. Se andre Linux -hint -artikler for flere tips og informasjon.