PDA

View Full Version : [C++] Passaggio da Matlab a C++, consigli generali e software di base?


Carlo90
14-04-2015, 12:25
Ciao a tutti,

sono un utente Matlab/Octave che vorrebbe scrivere un programmino in C++ per fare semplicemente dei conti con matrici/vettori.

Mi è stato già indicato un buon tutorial, e mi è stato consigliato di scaricare MS Visual Studio.
Premettendo che sono un ignorante in materia, non è forse sovradimensionato come programma, occupando infatti diversi Gigabyte sull'hard disk? Ci sono alternative più "leggere"?

Se aveste qualche consiglio, sia per rendere meno traumatico il passaggio da Matlab al C++, sia per trovare un buon IDE (è corretto? :D) che magari sia user friendly come quello di Matlab, mi fareste un favore.
Considerate che ho accesso a tutti i software Microsoft con licenza msdn.

Grazie mille!

71106
14-04-2015, 14:18
Visual Studio non serve, basta qualunque editor di testo e clang (http://clang.llvm.org/).

Per effettuare operazioni di algebra lineare puoi vederti questa libreria di Boost: http://www.boost.org/doc/libs/1_57_0/libs/numeric/ublas/doc/index.html

71106
14-04-2015, 14:23
Dovesse servirti qualche indicazione relativa all'installazione di tutto il necessario, io sulla mia Kubuntu lancerei questo comando:

sudo apt-get install llvm clang libboost-dev

Dopodichè, per compilare, semplicemente

clang++ path/to/file.cpp

clang produrrà un file di nome "a.out" che puoi lanciare direttamente. Se vuoi specificare un nome diverso:

clang++ -o path/to/binary path/to/source.cpp

Simonex84
14-04-2015, 14:29
Ma vuoi usare C++ al posto di Matlab per una questione di prestazioni?

Carlo90
14-04-2015, 16:36
Scusami 71106, ho mancato di segnalare che userò esclusivamente Windows.

Il motivo per cui devo passare da Matlab a C++ è per poter "allacciare" questo programma ad un altro programma scritto in C++, non per motivi di prestazioni.
Purtroppo partirei (quasi) da zero in C++, seppur ho una conoscenza medio/alta di Matlab che spero mi possa aiutare. :mc:

Carlo90
14-04-2015, 19:01
Se ti devi solamente interfacciare con moduli scritti in C/C++, devi vedere cosa sono i mex files in MATLAB (essendo utente avanzato, presumo ne hai gia' sentito parlare).

Sì, ne ho sentito parlare, ma non credo si possa applicare al mio caso. Devo infatti creare un (piccolo) programma che sarà chiamato dal programma principale, al quale non ho accesso e non posso toccare. Avevo pensato addirittura di scrivere il codice in Matlab e poi di convertirlo in C++, ma comunque una minima conoscenza del C++ è auspicabile.

in sostanza non ti sara' d'aiuto, ma piu' che altro di intralcio.

Sei la seconda persona che me lo dice :D

Grazie per l'aiuto! :)

Simonex84
14-04-2015, 19:27
Sì, ne ho sentito parlare, ma non credo si possa applicare al mio caso. Devo infatti creare un (piccolo) programma che sarà chiamato dal programma principale, al quale non ho accesso e non posso toccare. Avevo pensato addirittura di scrivere il codice in Matlab e poi di convertirlo in C++, ma comunque una minima conoscenza del C++ è auspicabile.



Sei la seconda persona che me lo dice :D

Grazie per l'aiuto! :)

la via più comoda è farti un modellino Simulink con una m-function che fa quello che ti serve e poi col Code Generator crei un programma C, questo poi lo integri nel tuo programma C principale

Carlo90
28-10-2015, 22:34
col Code Generator crei un programma C, questo poi lo integri nel tuo programma C principale

Rispondo ora per confermare, a chi si trovasse in una situazione simile, che questa soluzione è particolarmente comoda (purché si abbiano almeno le basi del C).

Ciao. ;)

Carlo90
28-10-2015, 22:35
col Code Generator crei un programma C, questo poi lo integri nel tuo programma C principale

Rispondo ora per confermare, a chi si trovasse in una situazione simile, che questa soluzione è particolarmente comoda e soprattutto veloce (purché si abbiano almeno le basi del C).

Ciao. ;)