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

MATLAB Discussion :

Problème de visualisation variable char


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème de visualisation variable char
    Bonsoir à tous et à toutes,

    Je rencontre un petit problème avec matlab et j'espère que vous pourrez m'aider, je commence à être réellement à court d'idées. Je vais tenter d'être explicite.


    Voici la situation :


    Je dois concaténer trois variables char de dimensions différentes tel que :

    Rep4 = [Rep1, B, Rep3];

    Rep 1, B et Rep 3 étant trois variables de type char. (Je pourrais les concaténer de la manière suivante y = char(Rep1, B, Rep3) mais si je fais ça je me retrouve avec une variable inutilisable d'un point de vue édition.. la variable devient impossible à lire, je ne m'explique pas plus en avant sur ce point car je vais m'y perdre)


    Pour concaténer de la première manière, il faut que les trois matrices associées aux variables soient de même dimensions :

    Donc j'ai quelque chose du style :

    Rep1 = 1x3400

    B = 23 x 100

    Rep3 = 1x2500


    J'ai donc créer une petite fonction qui me fait passer B de 23 x 100 à quelque chose du style 1x300.

    Voici la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function [y] = MatCharEnVect(x);
     
    A = size(x, 1);
    B = size(x, 2);
     
    k = 0;
    C = [];
     
    for k = 1 : A;
     
      C = [C, x(k,[1:B])];
     
      y = strrep(C, '    ', '');
     
    end
    Et la plupart du temps cela fonctionne de manière impeccable, je fais : Rep4 = [Rep1, MatCharEnVect(B), Rep3] et j'obtiens ce que je veux.

    Mais de temps en temps (et c'est là que j'ai un problème), je me retrouve avec un résultat complètement différent. Je m'explique avec un exemple :

    1 ) J'ai :

    B = test



    Test matlab pour forum


    Test



    TEST TEST TEST

    Dimensions : 22x23 char

    Je fais y = MatCharEnVect(B)

    Et j'obtiens :

    y =

    *test

    Test matlab pour forum

    Test

    TEST TEST TEST

    Dimensions : 1x56 char


    Mais PARFOIS, avec certains textes, j'obtiens :

    y =

    *testTest matlab pour forumTestTEST TEST TEST

    Dimensions : 1x45 char


    Mon hypothèse, c'est que dans certains de mes textes, les sauts de lignes sont enregistrés (d'une manière qui m'est totalement inconnue) alors que dans les autres cas cette tabulation n'est pas enregistrée.

    Je me demandais si quelqu'un pouvait m'expliquer d'où vient ce problème. Et si possible, comment enregistrer cette tabulation dans le texte que je récupère.


    Bonne soirée à vous, j'espère vraiment que vous pourrez m'aider sur ce point. Je n'en peux vraiment plus.

    (Il faut savoir que le contenu de la variable B citée précédemment est obtenue à partir d'un get(), donc peut être peut-on spécifier que l'on veut aussi récupérer les données de tabulations avec cette fonction.. Je n'ai en tout cas pas réussi à déterminer comment)

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    salut

    pourquoi tu n'utilises pas des tableaux de cellules ?
    c'est tellement plus simple ...

    Fabien

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Le but est d'enregistrer cette variable dans un fichier texte (.txt) et de pouvoir à nouveau ouvrir ce fichier texte avec Matlab ensuite.

    J'ai essayé avec un tableau de cellules mais les trois cellules ayant des dimensions différentes, cela écrit n'importe quoi dans mon fichier texte.


    A moins que tu aies la solution à ça (qui est peut être très simple ), je préfère rester sur la première option. En soit mon problème est presque résolu, je souhaite simplement comprendre comment conserver la tabulation d'un texte avant de le redimensionner en 1 x ???.

Discussions similaires

  1. Problème d'affichage des variables char
    Par choisima dans le forum Débuter
    Réponses: 7
    Dernier message: 07/01/2013, 21h34
  2. Problèmes avec les variables final
    Par casolaro dans le forum Langage
    Réponses: 7
    Dernier message: 09/12/2004, 14h29
  3. Réponses: 6
    Dernier message: 28/05/2004, 09h39
  4. Réponses: 6
    Dernier message: 24/07/2003, 12h39
  5. [PostgreSql] Problème de cadreage de char !!!
    Par moipastoi dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/05/2003, 18h01

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