2016-07-09 10 views
1

Gibt es Analoga zu Matlab horzcat() und vertcat() Funktionen in F #? Weil das, was ich gerade tue, so gemein scheint. Es gibt eine verwandte Frage here, aber es scheint ziemlich veraltet.Array Verkettung in F #

let arr = Array.init 5 (fun i -> 1.) 
    let xMat = DenseMatrix.init l 2 (fun r c -> if c = 0 then 1. else arr.[r]) 

Danke.

[Bearbeiten] Es gibt ein Array.concat, aber es scheint nur vertikal zu arbeiten.

Antwort

5

Soweit ich weiß, gibt es keine integrierte Funktion dieser für F # Arrays, aber in Ihrem Code zu tun sind Sie letztlich mit Matrizen von Math.NET Numerik und Math.NET Arbeits hat Funktionen Anhängen von Matrizen vertikal und horizontal:

let m1 = DenseMatrix.init 5 1 (fun _ _ -> 1.) 
let m2 = DenseMatrix.init 5 1 (fun _ _ -> 2.) 

DenseMatrix.append [m1; m2] // Append matrices horizontally 
DenseMatrix.stack [m1; m2] // Append matrices vertically 
+1

Ausgezeichnet. Diese Funktionen müssen in Math.NET-Lernprogrammen stärker herausgestellt werden. –

+1

@professorbigglesworth Ich stimme zu, dass es immer mehr/bessere Dokumentation geben könnte. Diese beiden Funktionen werden jedoch [hier] (http://numerics.mathdotnet.com/Matrix.html) erwähnt. Außerdem blicke ich oft einfach in das Objekt und erkunde, welche Methoden zur Verfügung stehen. Ich bin mir sicher, dass Sie einen PR auf GitHub machen können, um Ihren Anwendungsfall als Beispieldokument hinzuzufügen. Oder vielleicht ein Matlab zum Mathnet Mapping. – s952163

+1

@ s952163 Danke, dass du das rausgefunden hast, irgendwie habe ich es verpasst. Nebenbei bemerkt, meiner Meinung nach sind Julia Docs der Standard, dem man folgen sollte. Vielleicht etwas für die Gemeinschaft zu emulieren. Alles methodisch an einem Ort präsentiert und durchsuchbar. [link] (http://docs.julaulang.org/en/release-0.4/) –