Ich definiere eine Gürteltier-Matrix und ich versuche, es über Initialisiererlisten gemäß seiner manual zu initialisieren.C++: Armadillo Spalte Matrix Initialisierung mehrdeutig
Es ist in Ordnung, wenn ich nicht versuche, eine Spaltenmatrix zu definieren.
Warum ist es ambivalent?
#include <armadillo>
int main()
{
// ok : square matrix
arma::mat A={{1.0,2.0},{3.0,4.5}};
// ok: row matrix
arma::mat B={3.5,4.0};
// error: conversion from ‘<brace-enclosed initializer list>’ to
// ‘arma::mat {aka arma::Mat<double>}’ is ambiguous
arma::mat C={{3.5},{4.0}};
// ok: column matrix
arma::mat D=arma::mat({3.5,4.0}).t();
return 0;
}
ich Ihnen widersprechen, wie dieser Code vollständig mit quadratischen Matrizen arbeitet. Wenn ich Zahlen ohne extra Umbruch anlege, wird das eine Zeilenmatrix definieren. Der gürteltierbezogene Code für 'operator =' kann [hier] (https://github.com/RcppCore/RcppArmadillo/blob/6450efdb9b727539dabd13467db5a7a0f25c8b38/inst/include/armadillo_bits/Mat_bones.hpp#L762) oder in der Nähe gefunden werden. – ar2015
@mtall, existiert irgendeine andere Lösung oder 'arma :: mat ({3.5.4.0}). T(); ist der einzige Weg? – ar2015
@Mtall, es hat funktioniert. Vielen Dank. Könnten Sie es bitte als Antwort lassen, damit ich die Frage schließen kann? – ar2015