Introduksjon til flerdimensjonal matrise i C

Denne artikkelen fokuserer på den flerdimensjonale matrisen i c som hovedsakelig brukes i data- og forskningsanalyse. Generelt fokuserer en gruppe lineært et informasjonsstykke som sies å være endimensjonalt. Enkeltdimensjonal lagrer bare data som studentene. I noen situasjoner er det nødvendig å lagre data i et tabellformat som inneholder rader og kolonner eller for å håndtere komplekse data. For å visualisere det trenger vi et matriksformat som vi kalte som todimensjonale matriser der arrangementene krever piksler av bildet, grafikk. Dataene lagres på en tabell måte. Arraymanipulasjoner utføres ved å omorganisere et element ved å bruke funksjoner som omforme, klemme.

Hvordan erklære en flerdimensjonal matrise i C?

syntaks:

Den generelle erklæringen for flerdimensjonal matrise er gitt som:

type name ( size) (size)……. N;

  • Her, datatypenavn - Det angir typen elementer (heltall, flyte).
  • Array name - Betegner navn som er tilordnet dimensjonale array.
  • Rekkevidde - Antall rekkeelementer eks. radstørrelse = 8, deretter har matrisen 8 rader.
  • Kolonnestørrelse - Antall kolonneelementer.

Hvordan initialisere den flerdimensjonale matrisen i C?

Størrelsen på flerdimensjonale matriser er forutsagt ved å multiplisere størrelsen på forskjellige dimensjoner. Og de lagrer verdier i form av to måter som rad-dur og kolonne-dur. Og minnetildelingen validerer både lengde- og rangeringsegenskaper.

I C har flerdimensjonal matrise tre typer:

  1. To-dimensjonal matrise
  2. Tredimensjonal Array
  3. Firedimensjonal matrise

1. To-dimensjonal matrise

To-dimensjonal array er strukturert som matriser og implementert ved hjelp av rader og kolonner, også kjent som en matrise av matriser. Minnetildelingen gjøres enten i rad-hoved og kolonne-hoved. Og standardformatet er Row-Major. Når du tar en 2-D-matrise, anses hvert element for seg å være en 1-D-matrise eller kjent for å være en samling av en 1-D-matrise. Den to-d-matrisen bruker to for løkker eller nestede løkker der ytre løkker kjøres fra 0 til det første abonnementet.

syntaks:

type array name ( no. of rows) ( no. of Columns);

Eksempel:

int td (4)(3);

her 4 er nei. av rader og 3 er nei. av kolonner.

Initialisering av todimensjonal matrise

Initialisering i 2-D-matrisen gjøres på flere måter, det vises her.

int m (3)(2) = ((10, 3) (4, 2) (6, 4) (5, 4) (3, 4));
int di (2)(4) = (10, 5, 8, 12, 45, 13, 11, 61);

Her har vi nevnt nei. av rader og kolonner i boksen Det er obligatorisk å tildele den andre indeksen for å forstå kompilatoren om avslutningen og starten av raden. Tabellen nedenfor viser minnetildelingen av 2-D-matrisen.

Antall elementer bestemmes ved å manipulere et antall rader og kolonner og multiplisere nei. av henholdsvis rader og kolonner. for Instansen, no. av elementer en gruppe inneholder B (-2 … 4, -3.6). Det beregnes av undergrense og øvre grense.

No. of rows= UB-LB +1
=4-(-2) +1 = 4+2+1= 7
No. of columns = UB-LB +1
= 6-(-3) + 1= 11
No. of elements = Rows * columns = 7 * 11 =77 elements

Gjennomføring

Det gjøres ved bruk av Row major og column-major Implementations

Row-Major:
Formelen for adressemanipulering er gitt som:
= B +W ( n(I-1) +(J-1))
Hvor b- er baseadressen og n- Antall kolonner for W-byte.
Kolonne Major:
= B +W ( r(j-1) +(i-1))
hvor r - er nei. av rader.

Eksempler på todimensjonal matrise

Eksempler på todimensjonal matrise er:

Eksempel 1

Hvert element i en gruppe A (-10, 10, 20 … 35) trenger 1 byte minne. Og matrisen passer i Column major på adressen 400, Finn plasseringen til A (0, 30).

Løsning

BA =400, W=1
R = no. of rows -> 10-(-10) +1 = 21
I= -10; J= 20
Address A (0, 30) = 400 + 1((0-(-10) +21(30-20))) =400 +(10+21*10)
=400 +(10+210) = 620

En kjent operasjon utført i 2-d-matrisen er Algebra of matrices with m * n Matrix of B. Det matematiske konseptet for matrisen implementeres på samme måte som i programmering.

Eksemplet nedenfor lagrer et element i matriksformatet og skriver ut det samme.

Kode:

#include
int main ()
(
int a(3)(4), i, j;
for(i = 0; i < 3; i++)
(
for(j = 0; j < 4; j++)
(
printf("Enter arr(%d)(%d): ", i, j);
scanf("%d", &a(i)(j));
)
)
printf("\nEntered 2-D array is: \n\n");
for(i = 0; i < 3; i++)
(
for(j = 0; j < 4; j++)
(
printf("%3d ", a(i)(j) );
)
printf("\n");
)
return 0;
)

Produksjon:

Eksempel 2

C-program som utfører summen av to matriser.

Kode:

#include
int main()
(
int mat(20)(20);
int i, j, r, c;
int s;
printf("Enter number of Rows :");
scanf("%d", &r);
printf("Enter number of Cols :");
scanf("%d", &c);
printf("\nEnter matrix elements :\n");
for(i=0;i< r;i++)
( for(j=0;j< c;j++)
(
printf("Enter the number of inputs (%d, %d) : ", i+1, j+1);
scanf("%d", &mat(i)(j));
)
)
printf("\n");
for(i=0;i< r;i++)
(
s=0;
for(j=0;j< c;j++)
(
printf("%d\t", mat(i)(j));
s+=mat(i)(j);
)
printf("\tSUM : %d", s);
printf("\n");
)
)

Programmet over beregner summen av to matriser A (20, 20) B (20, 20) forutsatt at de har to identiske matriser. Gjennom for loop, tar det to matematikk for inngang og løkker for å godta matrise.

Produksjon:

Eksempel 3

Transponere en matrise

Bytte rader og kolonner for å danne en ny matrise som er kjent som transponering av en matrise.

Eksempel:

Så transponerer gi,

Matrix Transpose Bruke C-program

Kode:

#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)
#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)
#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)
#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)
#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)

I det ovennevnte programmet For å lese en matrise hadde vi brukt to for løkker og for å skrive ut dens transponering brukes det nestede for sløyfen for å vise utdataene. Her har vi brukt 3 * 3 matrise.

Produksjon:

2. Tredimensjonal matrise

Det kalles en matrise av matriseelementer eller en matrise av matriser. Det er ganske travelt, men når du først har øvd deg mot logikken, blir det lettere å implementere. og denne 3-D-matrisen krever mer enn tre dimensjoner og krever at minnemassen skal lagres.

Det kan erklæres som:

data_type array_name (table name) ( no. of row) ( no. of column) int L(m)(n) (p);

int L (3) (4) (2); Her kan matrisen L inneholde 24 elementer. Og alle disse kan initialiseres under sammenstillingsprosessen, men når de ikke initialiseres, blir de satt i en søppelverdi.

Initialisering kan gjøres på samme måte som en todimensjonal matrise. Her er en prøve,

int L (2)(3)(4) = (((2, 2, 1, 3), (1, 6, 5, 11), (22, 11, 13, 5)), ((13, 5, 77, 8), (6, 8, 2, 4), (3, 2, 7, 8)));

Eksempler på tredimensjonal matrise

Her er noen eksempler på den tredimensjonale matrisen som er gitt nedenfor:

Eksempel 1

Nedenfor kommer et enkelt eksempel i C-programmering som illustrerer tredimensjonal Array. Det gjøres ved å bruke for en løkke ved å vurdere 3 for løkker for 3d-elementer.

Kode:

#include
void main()
(
printf("three dimensional array!\n\n");
int i, j, k, s(2)(1)(2), siz;
siz=2*1*2;
printf("Enter %d elements: \n", siz);
for(i = 0; i < 2; ++i)
(
for (j = 0; j < 1; ++j)
(
for(k = 0; k < 2; ++k )
(
scanf("%d", &s(i)(j)(k));
)
)
)
printf("The stored values are:\n\n");
for(i = 0; i < 2; i++)
(
for (j = 0; j < 1; j++)
(
for(k = 0; k < 2; k++)
(
printf("sample(%d)(%d)(%d) = %d\n", i, j, k, s(i)(j)(k));
)
)
)
)

Produksjon:

Eksempel 2

Et annet eksempel på en 3D-gruppe for å skrive ut elementer automatisk.

Kode:

#include
int main()
(
int m(2)(3)(2) =
(
( (1, 2), (3, 5), (6, 5) ),
( (8, 3), (8, 7), (9, 11) )
);
for (int i = 0; i <2; ++i)
(
for (int j = 0; j <3; ++j)
(
for (int k = 0; k <2; ++k)
printf("Value at m(%d)(%d)(%d) = %d\n", i, j, k, m(i)(j)(k));
)
)
)
return 0;
)

Produksjon:

3. Firedimensjonal matrise

Det er en rekke tredimensjonale matriser, og det er veldig vanskelig å håndtere dimensjonene. Det blir sett på som en haug kuber sammen og kan brukes for romvektorer.

Erklæring om 4-D Array:

Skriv inn matrisenavn (1) (2) (3) (4) ……. (n) der 1, 2 angir dimensjonene og n impliserer nde dimensjoner.

Eksempel:

int state (5)(6)(7)(8);

Eksempel på firedimensjonal matrise

C-program for å implementere 4- D-matrise.

Kode:

#include
int main()
(
int i, j, k, l, s;
int d(2)(2)(2)(2);
s = 2;
d(0)(0)(0)(0) = 4;
d(0)(0)(0)(1) = 3;
d(0)(0)(1)(0) = 2;
d(0)(0)(1)(1) = 6;
d(0)(1)(0)(0) = 6;
d(0)(1)(0)(1) = 8;
d(0)(1)(1)(0) = 1;
d(0)(1)(1)(1) = 2;
d(1)(0)(0)(0) = 6;
d(1)(0)(0)(1) = 9;
d(1)(0)(1)(0) = 5;
d(1)(0)(1)(1) = 1;
d(1)(1)(0)(0) = 9;
d(1)(1)(0)(1) = 7;
d(1)(1)(1)(0) = 5;
d(1)(1)(1)(1) = 7;
for (i = 0; i < s; i++) (
for (j = 0; j < s; j++) (
for (k = 0; k < s; k++) (
for (l = 0; l < s; l++) (
printf("Value of stdio(%d)(%d)(%d)(%d): %d ", i, j, k, l, d(i)(j)(k)(l));
printf("\n");
)
)
)
)
return 0;
)

Produksjon:

Konklusjon

Til slutt i denne artikkelen diskuterte vi flerdimensjonale matriser og undertypene deres i C-programmering. Og også deres erklæring og tilgang til elementene i et matriser. Disse teknikkene brukes i konseptet som binær søking og sortering implementering. Her spiller en indeks en nøkkelrolle i når de spesifiserer et element i matrisestrukturen.

Anbefalte artikler

Dette er en guide til flerdimensjonal matrise i C. Her diskuterer vi hvordan du initialiserer den flerdimensjonale matrisen i C sammen med eksempler. Du kan også se på følgende artikler for å lære mer-

  1. Beste C-kompilatorer
  2. 2D Arrays i C #
  3. 2-D Arrays i C.
  4. C Lagringsklasser
  5. C Programmering av matrixmultiplikasjon
  6. 3 forskjellige typer matriser i PHP (eksempler)
  7. Hvordan fungerer Array i Unix med syntaks?