Komplexe Matrix ?

donjunker

Grünschnabel
Hallo,
ich habe ein Problem mit 2-dimensionalen komplexen Arrays.
Ich hatte unter Linux eine Funktion in folgender Art geschrieben:
Code:
#include <math.h>
#include <stdio.h>
#include <Complex.h>

void funktion(int n, int m)
{
  Complex A[m][n];
 
  // Dann habe ich die Matrix gefüttert und konnte sowohl die Real- als auch
  // auch die Imaginärteile mit A[i][i].re.... ansprechen und bearbeiten

   return;
}

D.h. ich übergebe der Funktion die Größe der Arrays und will innerhalb der Funktion mit der komplexen Matrix arbeiten.
Nun soll es auch unter Windows laufen, doch das klappt nicht.
Ich habe schon rausgefunden, daß man eine Matrix konstant deklarieren muß. Das könnte ich z.B. mit 'new' und 'free' lösen (klappt bei meinen normalen Arrays problemlos).
Aber ich kriege es nicht hin, komplexe Arrays zu erstellen und zu bearbeiten.
Die komplexen Matrizen leben nur innerhalb der Funktion.
Ich bin für jede Hilfe dankbar, aber bitte nicht so kompliziert, da ich doch eher ein Anfänger bin.

Gruß donjunker
 
meinst du das: (ich interpretier den 'free' mal als delete)

Code:
include <math.h>
#include <stdio.h>
#include <Complex.h>

typedef Complex* PCOMPLEX

void funktion(int n, int m)
{
Complex **A;
A = new PCOMPLEX[200];
for(int i=0;i<200;i++)
{
  A[i] = new Complex[200];
}

delete[][] A;
return;
}
Ich habs net ausprobiert, aber ich meine ich müsste so gehen, falls ich dein Problem richtig verstanden habe
 
Hallo, danke für die schnelle Antwort. Ich konnte damit das Problem in folgender Form lösen:
Code:
#include <stdio.h>
#include <math.h>
#include <iostream.h>
#include <complex>

using namespace std;

int main()
{
int m,n,i;
	m=2;
	n=3;
	double c1=1.0;
	double c2=-2.0:

	complex<double>** A;
	A=new complex<double>*[m];
	for(i=0;i<m;i++)
		A[i]=new complex<double>[n];
	
	A[1][1].real(c1);
	A[1][1].imag(c2);

	cout <<"A[2][2] = "<<A[1][1].real()<<" / "<<A[1][1].imag()<<"\n";

	for(i=0;i<m;i++)
		delete[] A[i];
	delete[] A;

	return 0;
}

Vielen Dank für die Hilfe.
Gruß donjunker
 

Neue Beiträge

Zurück