Hvordan simulere en rekke matriser i bash

Hvordan simulere en rekke matriser i bash
Bash er virkelig et tolket, interaktivt språk, og hvor mye plass som skal reserveres på forhånd, trenger ikke å bli kjent. Det er også mulig å gjøre klar en ny matrise dynamisk uten å erklære den eller utvide en tidligere definert matrise for å inkludere ytterligere oppføringer. Fortsatt støttes ikke flerdimensjonale matriser av bash, og vi kan ikke få matriser som også er matriser. Heldigvis kan flerdimensjonale matriser simuleres. Denne artikkelen vil gi noen illustrasjoner av simulering av en rekke matriser i et bash -skript.

Eksempel 01: Bruke enkle “for” løkker

Vi har et eksempel på å simulere en rekke matriser ved hjelp av den enkle metoden. La oss begynne å demonstrere hvordan du laster inn en brukerdefinert m x n-tabell med tilfeldige tall (som ikke er tilfeldig, fordi hver kolonne til enhver tid vil ha et lignende tall i hver kjøring på de fleste av radene, men det gjelder ikke spørsmålet ), og skriv den ut. Når vi jobber med enten en bash som du har, bash versjon 4, vil skriptet absolutt fungere effektivt. Vi skal ikke ensomme erklære 0; Det er mer som en perfekt løsning på at verdier blir akseptert kraftig. Vi har erklært en matrise med "-a" nøkkelordet. Hvis vi ikke definerer det assosiative matrisen som bruker -A, kan det hende at koden ikke fungerer for oss. Det leste nøkkelordet brukes deretter til å lese brukerens innspill, som er rader og kolonner i en tabell. Så har vi brukt to "for" -løkker for å øke rader og søyler i en tabell. I for Loop har vi laget en todimensjonal matrise. I det neste for loop er alle verdiene til en matrise blitt vist.

Når du kjører bash -filen, vil den be en bruker om å legge inn rader og kolonner som "M" og "N". Etter det vil for løkker generere et todimensjonalt bord som nedenfor.

Eksempel 02: Bruke hasj

Når vi tar samme tilfelle, kan vi etterligne matriser ved hjelp av hasj. Vi må imidlertid være mer forsiktige med å lede nuller og flere andre ting. Neste forklaring fungerer. Imidlertid er veien ut veldig langt fra ideell. Vi har tatt rader og søyler manuelt. For sløyfe brukes til å lage en matrise. Så har vi brukt hasj for å etterligne den todimensjonale matrisen. Endelig vil matrisen bli skrevet ut som nedenfor.

Utfør filen “Input.sh ”i bash -skallet ved hjelp av bash -kommandoen. Du finner en tabell med nevnt rader og kolonner.

Eksempel 03: Bruke assosiative matriser

La oss ha et eksempel på at simulering har en noe lignende effekt ved å bruke de assosiative matriser som brukes som en rekke matriser som nedenfor. Etter erklæringen om det assosiative matrisen, har vi definert verdier for matriser separat. Etter det har vi gjort det for å skrive ut verdiene på todimensjonal måte.

Du kan se utdataene som en todimensjonal matrise mens du kjører filen. Hvis vi ignorerer “Delcare -A ARR” -linjen, kan Echo -setningen vises (2 3) i stedet for (0 1), siden (0,0), (1,0), og andre kan ha blitt brukt som matematisk uttrykk og beregnet til 0 (verdien på høyre side av et komma).

Eksempel 04: Bruke navnreferanser

I Bash er det et hyppig problem med referanseoppstillingene i matriser som du må konstruere navnreferanser ved å bruke Declare -N. Det navnet etterpå -N fungerer som et navn Ref for verdien som er tildelt (etter =). For øyeblikket håndterer vi denne variabelen bare med attributtnavn Ref for å utvide som om det var en matrise og utvide den passende siterte matrisen som på forhånd. La oss ha et eksempel på navn Refs. Vi har erklært to matriser. Etter det har vi tildelt begge matrisene til en annen matrise som medlem. Vi har brukt til loop for å lage en todimensjonal matrise. Vi har laget en annen variabel for å legge til en-for-en-verdiene til matrisen "Group" i den for sammenligning. Innerst inne vil det gå til medlemmer av indre matriser "bar" og "foo" for å ta verdier og sammenligne dem mens du skriver ut meldingen.

Når vi utfører filen “Input.sh ”, vil du se utdataene nedenfor. Variabelen “LST” har verdier av indre matriser i matrisen “Grupper”.

Eksempel 05: Bruke kutt nøkkelord

Først nå har jeg snublet inn i det. Det hadde vært en ganske grei tilnærming som fungerte for alle. For å vise et hovedkart for systemet, bestemte jeg meg for å bruke en matrise som inneholder et enhetsnavn og en skjermplassering. Vi må sammenkoble tittelen på enheten og den tilsvarende plasseringen av en skjerm i en enkelt streng, ved å bare bruke en avgrensning, som vi antok vil ikke forekomme i noen av våre verdier (i mitt tilfelle brukte jeg .). Og jeg brukte et "kuttet" nøkkelord for å dele betongverdiene i komponentene deres om nødvendig. Det kan imidlertid være en tydeligere og enklere tilnærming til å gjøre det, og dette er bare for å illustrere at vi på en måte i bash kan bygge et flerdimensjonalt utvalg, selv om det ikke hjelper det. Etter det må du skrive ut både enhetsnavnet og plasseringen separat etter å ha opprettet substring.

La oss kjøre bash “innspill.sh ”-fil. Du vil se den separate enheten og dens beliggenhet i skallet som mens du utføres. Løsningen fungerer ved hjelp av CUT -kommandoen.

Eksempel 06

La oss ta litt lengre eksempel for å etterligne en flerdimensjonal matrise. I Load_alpha () -funksjonen blir alle alfabetene lastet inn i matrisen. Etter det er PRINT_ALPHA () -funksjonen erklært og brukt til å skrive ut alle alfabetene i rad-major-rekkefølgen som en matrise eller todimensjonalt format. På den annen side har vi brukt Rotate () -funksjonen for å rotere matrisen. La oss prøve dette eksemplet i bashskallet for å se resultater.

Mens vi henrettes, har vi funnet en veldig vakker struktur av flerdimensjonal matrise i bash -skallet som nedenfor

Konklusjon

Vi har prøvd noen eksempler for å simulere matriser av matriser i bash. Jeg håper det fungerer!