PROBLEM STATEMENTAda: Zugriffs erstes Element in Real_Matrix mit einer Zeile und einer Spalte
Ich habe eine Real_Matrix mit einer Zeile und einer Spalte. Ich möchte den Wert des einzelnen Elements in Zeile eins, Spalte eins auswerten. Ich erhalte einen Fehler, wenn ich versuche, auf die Matrix zuzugreifen, indem ich folgende Syntax verwende: Matrix (I, J). Siehe unten:
CODE
with Ada.Numerics.Real_Arrays; use Ada.Numerics.Real_Arrays;
with Ada.Text_IO; use Ada.Text_IO;
procedure Matrix is
------------------------------------
-- Real_Matrix Division Operation --
------------------------------------
function "/" (Left : Real_Matrix;
Right : Real_Matrix) return Real_Matrix
is
begin
return Left * Inverse(Right);
end "/";
α : Real_Matrix := ((Integer'First => 1.0),
(Integer'First => 2.0));
β : Real_Matrix := ((Integer'First => 3.0),
(Integer'First => 4.0));
begin
-- This operation returns an matrix with one row and one column --
Put_Line(Float'Image(((Transpose(α) * α)/(Transpose(β) * β))(Integer'First, Integer'First))); -- Error: Missing "," --
end Matrix;
Können Sie die Typdefinition von Real_Matrix hinzufügen? – NWS
Auch brechen Sie es als Diagnosetechnik auf. Weisen Sie das Ergebnis der Matrixoperation einer Zwischenvariablen zu. Index das als eine separate Operation. Sehen Sie, welcher Teil fehlschlägt. –
Beachten Sie, dass 'Integer'First'' -2147483648' ist, während Sie stattdessen eine '1' oder' 0' haben möchten. –