IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Matlab ou C,C++ ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 3
    Par défaut Matlab ou C,C++ ?
    Bonjour à tous

    Je suis un étudiant en 2ème année de Master Systèmes Intelligents et Communicants

    J'aime beaucoup programmer et inventer des applications et comme nous utilisons beaucoup MATLAB à la fac, je m'y sens très à l'aise et à vrai dire je découvre chaque jour de nouvelles possibilités
    J'ai aussi beaucoup programmé en C, C++ et C#.

    Nos professeurs à la fac ont beaucoup insisté sur le fait que Matlab n'était pas un bon choix car il était payant et car dans le monde du travail on cherche plus la maîtrise du C que la maîtrise de Matlab.
    D'un autre côté je m'amuse tous les jours à utiliser de nouvelles possibilités qu'offre Matlab qui je trouve est un excellent environnement de développement.

    Ma question est : est-ce qu'il vaut mieux pour moi laisser tomber Matlab et me remettre au C? Que préférez vous vous mêmes? Quel est votre avis sur les deux langages?
    Et est-ce que le C permet de tout faire aussi facilement qu'avec Matlab?
    Et qu'en est-il du C++ ? J'ai déja utilisé Qt mais je ne peux pas dire que je sois un expert en la matière. Mais est-ce que la combinaison C++/Qt est aussi puissante que Matlab?

    J'aimerais notamment faire une application de traitement de son en temps réel où des sons entreraient par le micro de mon PC et seraient traités en temps réel et envoyés en sortie vers la baffle (un peu comme GuitarFX). Je pense qu'il faut utiliser Simulink sous Matlab pour faire cela.

    Merci de m'avoir lu, et j'attends vos réponses et suggestions

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par LDemri Voir le message
    Ma question est : est-ce qu'il vaut mieux pour moi laisser tomber Matlab et me remettre au C?
    Ce n'est pas incompatible...

    Mais c'est surtout qu'ffectivement Matlab est beaucoup (seulement ?) utilisé en milieu universitaire, et et que les temps de réponse et algorithmes ne sont en général pas forcément compatibles avec des processus industriels / proprétaires...

    Citation Envoyé par LDemri Voir le message
    Et est-ce que le C permet de tout faire aussi facilement qu'avec Matlab?
    Certainement pas

    Matlab a inclus un certain nombres d'algorithmes utiles qui sont accessibles via une commande...

    En C il te faudra soit les ré-écrire, soit aller chercher des biblothèques de maths...



    Citation Envoyé par LDemri Voir le message
    Et qu'en est-il du C++ ? J'ai déja utilisé Qt mais je ne peux pas dire que je sois un expert en la matière. Mais est-ce que la combinaison C++/Qt est aussi puissante que Matlab?
    Je crois que tu ne comprends pas vraiment ce qu'est Matlab.. C'est un OUTIL du style invite de commandes (ou shell) permettant de faire des MATHS...

    C++, Qt, etc (comme C) sont des LANGAGES généralistes (C et C++ pour la programmation pure, Qt pour les IHM)...

    Ils ne sont pas spécifiquement adaptés aux maths ni aux tracés scientifiques.. On PEUT s'en servir pour ça (et c'est ce que beaucoup de boîtes font)...


    Citation Envoyé par LDemri Voir le message
    J'aimerais notamment faire une application de traitement de son en temps réel où des sons entreraient par le micro de mon PC et seraient traités en temps réel et envoyés en sortie vers la baffle (un peu comme GuitarFX). Je pense qu'il faut utiliser Simulink sous Matlab pour faire cela.
    Temps réel => vraiment avoir le calcul le plus rapide et évntuellement optimisé pour telle ou telle plateforme..

    Pour ce qui est des calculs je choisirai là où tu te sens le plus à l'aise entre C et C++.

    Pour ce qui est des IHM, tout dépend des plateformes, des contraintes de portabilité, des contraintes d'affichage , etc etc.. Qt, Java, voire directement X11 si les contraintes de vitesse d'affichage sont très grandes..

  3. #3
    Membre Expert Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    L'idéal est Matlab et C/C++.

    Dans un très grand groupe industriel dans lequel j'ai travaillé, les spécialistes en traitement du signal faisaient du Matlab, mais ils galéraient un peu pour mettre leur algo en C.

    Sinon je ne peux rien dire de mieux que souviron34 (je ne suis pas spécialiste en la matière mais observateur).

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 485
    Par défaut
    Citation Envoyé par LDemri Voir le message
    Bonjour à tous
    Bonjour et bienvenue,

    J'aime beaucoup programmer et inventer des applications et comme nous utilisons beaucoup MATLAB à la fac, je m'y sens très à l'aise et à vrai dire je découvre chaque jour de nouvelles possibilités J'ai aussi beaucoup programmé en C, C++ et C#. Nos professeurs à la fac ont beaucoup insisté sur le fait que Matlab n'était pas un bon choix car il était payant
    Si tu cherches un MATLAB libre ou, à tout le moins, un outil comparable, tu peux regarder GNU Octave ou SciLab.

    SciLab est déjà très répandu. Et si tu travailles sous Linux, Octave doit déjà faire partie des packages de ta distribution.

    et car dans le monde du travail on cherche plus la maîtrise du C que la maîtrise de Matlab. D'un autre côté je m'amuse tous les jours à utiliser de nouvelles possibilités qu'offre Matlab qui je trouve est un excellent environnement de développement. Ma question est : est-ce qu'il vaut mieux pour moi laisser tomber Matlab et me remettre au C? Que préférez vous vous mêmes? Quel est votre avis sur les deux langages?
    Je ne connais pas assez Matlab pour être vraiment objectif, mais si tu n'as pas encore atteint ses limites, ce n'est pas la peine d'envisager une reconversion exprès.

    Cela dit, la question subsidiaire t'aidera peut-être à te faire une idée : selon toi, en quel langage est écrit Matlab ? :-)

    Et est-ce que le C permet de tout faire aussi facilement qu'avec Matlab?
    Tout, oui.
    Aussi facilement, non. Sûrement pas, oserais-je même. Mais il permet aussi de faire beaucoup plus.

    Et qu'en est-il du C++ ? J'ai déja utilisé Qt mais je ne peux pas dire que je sois un expert en la matière. Mais est-ce que la combinaison C++/Qt est aussi puissante que Matlab?

    J'aimerais notamment faire une application de traitement de son en temps réel où des sons entreraient par le micro de mon PC et seraient traités en temps réel et envoyés en sortie vers la baffle (un peu comme GuitarFX). Je pense qu'il faut utiliser Simulink sous Matlab pour faire cela.
    En fait, les langages C et C++ ne sont pas en eux-mêmes particulièrement adaptés aux mathématiques. Le C est extrêmement répandu, non seulement parce qu'il a de l'âge, mais également parce qu'il est très proche du fonctionnement réel d'un ordinateur. On entend souvent dire qu'il est « un cran au dessus de l'assembleur », même si ces deux langages sont très différents.

    Programmer en C permet d'avoir un contrôle assez poussé sur les exécutables générés, ce qui permet de limiter au maximum les dépendances à des ressources tierces. En outre, le C est très lié au monde UNIX (parce que conçu par les mêmes personnes, pour faire simple), lui-même répandu dans la communauté scientifique.

    Donc, si tu aimes coder et que tu cherches à choisir un langage « general-purpose », oriente-toi vers le C. Mais si le fonctionnement interne d'une machine ne t'intéresse que peu et que, ce qu'il te faut, c'est une calculatrice sophistiquée, tu peux rester sur Matlab.

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Je crois que tu trouveras beaucoup de réponses dans cette citation
    Aucun langage de programmation n'est parfait. Il n'existe même pas un langage meilleur que d'autres ; il n'y a que des langages en adéquation ou peu conseillés pour des buts particuliers.
    (Herbert Mayer).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 3
    Par défaut
    Merci pour toutes les réponses qui ne font que me confirmer ce que je pensais déja =)

    En fait, rien ne m'empêche d'apprendre et d'utiliser les 2, tout dépend ce que je veux faire. Comme nos profs nous l'ont dit chaque jour à la fac : "ça dépend de l'application"

    Mais qu'en pensez vous? Faire une application temps réel, c'est plus utile avec Matlab ou le C ?

  7. #7
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 485
    Par défaut
    Si tu arrives à apprendre les deux de manière réellement exhaustive, cela sera un atout sur le marché du travail.

    Il faut aussi savoir que bon nombre d'extensions de certains langages, spécialement lorsqu'ils sont interprétés, prennent en fait la forme de bibliothèques partagées écrites en C.

    Pour faire un filtre sonore temps réel, il y a beaucoup de maths… à la conception ! Lors de la réalisation, il importe de faire une application dont l'empreinte sur le système soit la plus faible possible : un minimum de temps CPU, de mémoire occupée (de manière instantanée et/ou en moyenne), et de dépendances. Il s'agit donc de réaliser un produit « orienté système » en tenant compte, si possible, du « coût » en ressource de tes calculs.

    Moi, donc, je le ferais en C, sachant que le C ne propose pas nativement de mécanismes pour faire des mathématiques poussées. Il faudra donc, sauf à choisir une bibliothèque adaptée, te repalucher la gestion des objets mathématiques en plus des calculs proprement dits. Mais c'est de la même façon que le programmeur C s'occupe de la gestion de la mémoire (allocation, libération) notamment quand il manipule des chaînes. C'est un moindre mal.

  8. #8
    Membre Expert Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    Tu noteras bien ce que dit Obsidian, il parle du C, pas du C++.
    Je vais peut-être me faire tuer, mais je pense que l'algorithmie est plus liée au C (structurel) que C++ (objet). Je parle bien sûre du calcul pur et dur, pas de l'affichage.
    Tous les spécialistes en traitement du signal que j'ai connus convertissaient de Matlab vers C.

  9. #9
    Inactif  
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 123
    Par défaut Matlab/C/C++/Qt/SimuLink
    Bonjour,
    Nous ne sommes pas aussi scientifique que toi
    Ici, c'est le développement de programmes en C. J'avoue que Matlab, ce n'est pas notre utilisation courante ni SimuLink.
    Mais si tu veux, on peut répondre ça:
    SimuLink n'est pas gratuit. C'est un produit payant, il me semble.
    Et puis ce n'est pas vraiment pour faire du son.
    Si tu veux pour du son, je te propose plutôt cet outil génial et gratuit : SynthMaker.

Discussions similaires

  1. [LabView-MATLAB] Conversion de fichier binaire
    Par flzox dans le forum LabVIEW
    Réponses: 3
    Dernier message: 20/01/2007, 18h42
  2. [visual C++/Matlab] communication entre les deux
    Par Bilouzzz dans le forum MFC
    Réponses: 2
    Dernier message: 15/10/2005, 05h05
  3. Réponses: 2
    Dernier message: 02/09/2005, 15h23
  4. Clone Matlab
    Par devmat dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 30/04/2005, 16h44
  5. OpenGl - Matlab
    Par ManuG dans le forum OpenGL
    Réponses: 2
    Dernier message: 19/01/2005, 15h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo