Den isnumeriske funksjonen i matlab

Den isnumeriske funksjonen i matlab
Etter å ha kjent datatypen, vil vi sende inn inngangsargumentene til en funksjon, som er essensielt i programmering. Det kan unngå feil eller uventet atferd på grunn av dataforenbarhet.

I denne Linux -hint -artikkelen lærer du hvordan du bruker Matlab isNumeric () -funksjonen for å bestemme om en matrise er numerisk. Vi forklarer alt du trenger å vite om å bruke denne funksjonen: dens inngangs- og utgangsargumenter, typen data den aksepterer osv.

I tillegg finner du bilder og praktiske eksempler med kodebiter og funksjonssamtaler med forskjellige datatyper og matriser.

Matlab isNumeric () funksjonssyntaks

r = isNumeric (x)

Beskrivelse av matlab isNumeric () -funksjonen

ISNumeric () -funksjonen returnerer et logisk resultat i “R” lik 1 hvis skalaren “X” eller alle elementer i vektoren eller matrisen til inngangsargumentene har numeriske verdier. En logisk 0 vil resultere hvis skalaren eller noe element i en vektor eller matrise ikke har ikke-numeriske data.

“Er… .”Funksjoner er et sett med MATLAB -funksjoner for å bestemme datatypen til en matrise.

Hvordan bestemme om en skalar er numerisk med Matlabs isNumeric () -funksjon

I dette eksemplet vil vi se hvordan du bruker ISNumeric () -funksjonen for å bestemme om en skalar er numerisk. For å gjøre dette bruker vi MATLAB -kommandokonsollen og oppretter skalaren “X” ved å tilordne den en verdi, karakter eller en annen datatype. Deretter kaller vi ISNumeric () -funksjonen og sender “X” som inngangsargumentet. Utgangen “R” er den logiske verdien 1 hvis den er numerisk og 0 hvis den ikke er det. Følgende bilde er et kodebit som viser resultatene når vi sender en numerisk verdi og et tegn som inngangsargumenter:

x = 88;
r = isNumeric (x)
x = 'a';
r = isNumeric (x)

Hvordan bestemme om verdier i en vektor er numerisk med Matlabs isNumeric () -funksjon

Nå vil vi se hvordan vi kan avgjøre om verdiene i elementene i en vektor er numeriske. For å gjøre dette oppretter vi vektoren “x” på kommandolinjen og kaller ISNumeric () -funksjonen som følger:

x = [8, -9, 58, 62, 0, 77];
r = isNumeric (x)

Som vist i følgende figur, returnerer isNumeric () et enkelt logisk resultat bestemt av alle vektorelementer:

Hvordan bestemme om verdier i en matrise er numerisk med Matlabs ISNumeric () -funksjon

I dette eksemplet vil vi se hvordan vi kan avgjøre om verdiene i elementene i en matrise er numerisk. For å gjøre dette oppretter vi matrisen “X” på kommandolinjen og kaller ISNumeric () -funksjonen.

x = [8, -9, 58, 62;
55, 84, Nan, 99;
44, 'J', 56, 'o';
74, 14, inf, nan];
r = isNumeric (x)

Som vist i følgende figur, returnerer isNumeric () et enkelt logisk resultat bestemt av alle matriseelementer:

Matlab isnumerisk funksjon i betingelser hvis

Som tidligere forklart i denne artikkelen, er disse funksjonene mye brukt i betingede uttrykk siden de tillater oss eller ikke lar oss utføre operasjoner i henhold til datatypen til en viss matrise, som unngår datakompatibilitetsfeil. Dette kan sees i koden for mange funksjoner i MATLAB -biblioteket der den spesifikke behandlingen som er utført, avhenger av hvilken type data som er sendt i inngangsargumentene.

I dette eksemplet vil vi lage en funksjon som utfører to grunnleggende operasjoner, delingen av A av B, som også returnerer resultatet av denne operasjonen på den ene siden, og resten etter divisjonen på den andre, som er en funksjon med To innganger og to utganger. Deretter vil vi se koden til denne funksjonen.

funksjon [d, r] = expl_1 (a, b)
d = a ./ b;
r = mod (a, b);
slutt

Lag et skript, lim inn dette utdraget, og lagre det som "expl_1". Deretter, fra MATLAB -kommandolinjen, skriver du inn forskjellige datatyper i “A” og “B” og ring “Expl_1” -funksjonen.

Som vist i forrige figur, gir divisjonsoperasjonene og mod () -funksjonen følgende feilmeldinger når vi oppgir ikke-numeriske data som strenger i A eller B.

“Operatør './'støttes ikke for type' streng 'operander.”

"Sjekk for feil argumentdatatype eller manglende argument i oppfordringen til å fungere 'mod'.”

Den beste løsningen for å unngå disse feilene eller uventede resultater er å bruke betingelser i begynnelsen av funksjonen der datatypetilstanden avgjør om funksjonen fortsetter å utføre eller ikke. I den følgende koden ser vi løsningen på dette problemet ved å implementere "hvis" betinget med en og kortslutningslogikk, der funksjonen fortsetter med utførelsen av de matematiske uttrykkene bare hvis "A" og "B" inneholder numeriske verdier.

funksjon [d, r] = expl_1 (a, b)
Hvis isNumeric (a) && isNumeric (b)
% Det kjøres bare hvis "A" og "B" er numerisk.
d = a ./ b;
r = mod (a, b);
slutt
slutt

Nå erstatter vi koden til Expl_1 -funksjonen med den nedenfor.

Vi kan også invertere resultatet av isNumeric () og bruke kortslutningslogikk “eller” for å sette opp en retur i funksjonen før de utfører de matematiske operasjonene som vil generere en feil. La oss deretter se på koden for å generere betinget avkastning.

funksjon [d, r] = expl_1 (a, b)
Hvis ~ isNumeric (a) || ~ isNumeric (b)
% Hvis "A" eller "B" ikke er numerisk, returnerer funksjonen.
komme tilbake;
slutt
% Bare utført hvis "a" og "b" er numerisk
d = a ./ b;
r = mod (a, b);
slutt

Med disse to måtene å bruke isNumeric () i ”IF” -forhold, oppnår vi at Expl_1 -funksjonen utfører de matematiske operasjonene bare hvis inndataene er kompatible.

Konklusjon

Som vi har sett, er denne funksjonen et utmerket tillegg til betingelser, slik at vi bare kan utføre kode når datatypen er kompatibel. Dette er veldig nyttig når vi oppretter funksjonene våre for å utføre matematiske formler, da vi kan filtrere inngangsdataene og bare behandle dem hvis dataene er numeriske. I denne artikkelen har vi forklart hvordan vi bruker ISNumeric () i Matlab. Vi har gitt en fullstendig beskrivelse av funksjonen, dens syntaks, struktur, innganger, utganger, datatyper og matriser den godtar. Vi håper du fant denne Matlab -artikkelen nyttig. Se andre Linux -hint -artikler for flere tips og informasjon.