2016-08-01 11 views
1

Ich habe ein Modell, um eine Datei zu lesen und einige Operationen darauf auszuführen und die Ausgabe in eine Datei zu drucken. Ich habe einen Fehler, den ich nicht beheben kann. Der folgende Code zeigt die Deklaration und Zuweisung der Eingabedaten zu einem 2D-Array.Fehler beim Erweitern der Variablen

Real Data_2D[:,:]"data from input file as 2D matrix"; 
length := Streams.countLines(Infile)"length of the input file"; 

    /*collect the data from input file in to 2D matrix */ 
    for i in 1:length loop 
     currentLine := Streams.readLine(Infile, indexDataStart+i-1); 
     nextIndex := 1; 
     for j in 1:noColumns loop 
      (Data_2D[i,j],nextIndex) := Strings.scanReal(currentLine, startIndex=nextIndex,unsigned=false, message="readCoefficientsHawc2.mo c[i,j] : Real scan not successful"); 
     end for; 
    end for; 

bekam ich die folgende Fehlermeldung „Fehler beim vairable Data_2D erweitern“

Es verymuch hilfreich wäre, wenn ich eine Lösung zu bekommen.

Antwort

2

Modelica Tools mögen im Allgemeinen keine unbekannten Dimensionen während der Kompilierung. Modelica Specification sagt, dass alle Array-Größen zur Kompilierungszeit bekannt sein sollten.

In Ihrem Fall hat Data_2D unbekannte Dimensionen. Von Ihrem Code sehe ich auch nicht, welche Art von Komponente Länge und Data_2D ist. Sind sie Parameter, Konstanten?

In Ihrem Fall könnte es möglich sein, Modelica.Blocks.Tables.CombiTable2D zu verwenden, um die Tabelle aus der Datei zu lesen.

+0

Danke für Ihre wertvolle Antwort. Ich habe es bald herausgefunden. Jetzt habe ich anderes Problem. Ich habe einen Fehler "DAE hat 0 Skalare und 0 Gleichungen". Könnten Sie mir bitte dabei helfen? –

Verwandte Themen