MATLAB: fonction Fprintf pour écrire des données dans Microsoft Office Word.

% J’ai quelques données, certaines sont doubles, d’autres sont char. Je veux écrire ces données dans Microsoft Office Word dans l’ordre.
% ici les quelques données que j’ai besoin d’écrire.
taille (tp) = [7,1]% tp est une matrice qui est double
% Je veux écrire des clarifications pour chaque ligne de tp. Elles sont;
[‘rotation x; rotation y; rotation z; dx; dy; dz; échelle’] Graphique%
% Comment puis-je écrire des clarifications près de la matrice tp dans le mot Microsoft Office.

Meilleure réponse

  • vous pouvez essayer ceci: http://www.mathworks.com/matlabcentral/newsreader/view_thread/293381
    ou vous pouvez écrire vos données dans Microsoft Excel en utilisant la fonction xlswrite.
  • MATLAB: comment imprimer la valeur de chaîne à l’aide de fprintf

    Salut,
    a = (aa bb cc dd)
    pour ion = 1: 1: longueur (a)
    et quelques lignes de code
    puis plus tard j’ai quelques fonctionnalités
     
    ---------------
    p = a (ion);
     
    Résultats si j’utilise
     
    fprintf ( "% 10s" , p);
    error: fprintf: wrong type argument 'cell'
     
    suppose que si j’utilise
     
    disp (p)
    output
    {
    [1,1] = aa
    }
     
    Je veux juste le ‘aa’ comme sortie en utilisant uniquement fprintf
    Comment je fais ça? Aide aimablement.

    Meilleure réponse

  • Le message d’erreur explique ce qui se passe: vous essayez d’utiliser uncellulecomme entrée pourfprintf. fprintfne «déballera» pas cela pour vous, vous devrez donc le faire vous-même:
     

    fprintf ( "% 10s" , p{1});

     

  • MATLAB: Comment lire un fichier texte encodé en UTF-8 en tant que vecteur à un seul caractère, y compris les espaces blancs et les caractères spéciaux unicode

    J’essaie de lire un fichier .text encodé en UTF-8, « data.txt » contenant des exemples d’informations comme celui-ci.
     
    <title>
    Fate/kaleid liner Prisma☆Illya (Fate/Kaleid Liner Prisma Illya) - MyAnimeList.net
    </title>
     
    Si j’essaye;
     
    data = fileread('data.txt');
     
    Exemples de données lues:
     
    <title>
    Fate/kaleid liner Prisma☆Illya (Fate/Kaleid Liner Prisma Illya) - MyAnimeList.net
    </title>
     
    Je perds les caractères spéciaux codés UTF8. Ici, «☆» est mal interprété comme «â˜ †».
    Si j’essaye;
     
    file = fopen('data.txt','r','n','UTF-8');
    data = fscanf(file, '%s');
    fclose(file);
     
    Exemples de données lues ::
     
    <title>Fate/kaleidlinerPrismaIllya(Fate/KaleidLinerPrismaIllya)-MyAnimeList.net</title>
     
    Je peux conserver les caractères unicode mais perd tous les caractères d’espace blanc.
    Si j’essaye;
     
    file = fopen('data.txt','r','n','UTF-8');
    data = textscan(file, '%s');
    fclose(file);
     
    Exemples de données lues:
     
    11×1 cell array
    {'<title>' }
    {'Fate/kaleid' }
    {'liner' }
    {'Prisma☆Illya' }
    {'(Fate/Kaleid' }
    ......
     
    C’est une cellule divisée par des espaces blancs, même si elle a correctement lu tout l’unicode.
    Pouvez-vous me donner un moyen possible de surmonter ce problème?

    Meilleure réponse

  •  

    file = fopen('data.txt','r','n','UTF-8');
    data = fread(file, [1 inf], '*char');
    fclose(file)

     

  • MATLAB: Dans les devoirs, on m’a demandé d’utiliser fprintf pour afficher les données dans un tableau

    J’ai utilisé le bon code, mais au lieu d’avoir un en-tête en haut et tous les chiffres sous les en-têtes, tous les chiffres sont affichés et les en-têtes apparaissent à côté de chaque numéro.
    voici le code que j’ai tapé
    fprintf (s% s% \ n f2.0% e1.2% \ n, ‘Valeur K’, ‘Temp’, K, T)
    Veuillez aider!

    Meilleure réponse

  • Parce que K et T sont des tableaux, vous devez le faire dans deux fprintf () distincts:
     

    fprintf('K value, Temp\n');
    fprintf('%2.0f %6.2e\n', K , T);

     

  • MATLAB: 1. Pour x de 1 à 100, calculez y. Utilisez fopen et fprintf pour écrire des données x et y dans un fichier nommé «the_data.txt». Utilisez ensuite fopen et fscanf pour lire les données. Affichez les données dans deux colonnes. Fonction à utiliser: y = e ^ (0,02x)

    1. Pour x de 1 à 100, calculez y. Utilisez fopen et fprintf pour écrire des données x et y dans un fichier nommé «my_data.txt». Utilisez ensuite fopen et fscanf pour lire les données. Affichez les données dans deux colonnes.Fonction à utiliser: y = e ^ (0,02x)

    Meilleure réponse

  • Veuillez ne pas publier de problèmes de devoirs sans montrer vos tentatives et poser des questions spécifiques. Je me sens généreux, cependant:
    • Apprenez les bases de MATLAB:https://www.mathworks.com/learn/tutorials/matlab-onramp.html
    • Documentation pourfopen, fprintf, fscanf
  • MATLAB: Passer la sortie de chaîne formatée de sprintf à fprintf

    J’ai une fonction writeToLog qui prend une chaîne formatée et utilise fprintf pour imprimer la chaîne formatée à la fois dans un fichier journal et dans une fenêtre de commande.
    Lorsque j’utilise fprintf pour imprimer un emplacement de fichier en passant directement le répertoire de fichiers, cela fonctionne parfaitement:
     
    dir = '\\file_server\parent_dir\sub_dir';
    fprintf('Saving the log file to: %s\n', dir))
     
    Cependant, lorsque je transmets la sortie de chaîne formatée de sprintf à sprintf, cela génère une erreur:
     
    format_str = sprintf('Saving the log file to: %s\n', dir)
    >> fprintf(format_str)
    Warning: Escaped character '\p' is not valid. See 'doc sprintf' for supported special characters.
    Saving the log file to: \file_server>>
     
    Existe-t-il un moyen pour fprintf d’imprimer la chaîne formatée telle quelle?

    Meilleure réponse

  • Vous devrez faire
     

    function writeToLog(fid, formatted_str)
    % Write to log file.
    fprintf(fid, '%s\n', formatted_str);
    % Print to command window.
    fprintf('%s\n', formatted_str);
    end

     

  • MATLAB: J’écris un code pour reconnaître les différences entre les valeurs négatives et positives. Aidez-moi, s’il vous plaît!

    J’écris actuellement un programme pour qu’un utilisateur saisisse une valeur, et pour que mon programme puisse déterminer si cette valeur est négative et si elle est négative, pour afficher que la valeur négative est une entrée non valide.
    Jusqu’à présent, voici ce que j’ai pour cet exemple:
    H = entrée (‘Entrez votre altitude en [m]:’);
    if H==0 || H<11000 && H~=-inf
    fprintf (‘Vous êtes dans la troposphère \ n’)
    autre
    fprintf (‘Une distance négative peut être entrée, ce qui n’est pas valide pour ce programme’)
    Je pensais que le H ~ = -inf pouvait fonctionner pour que le programme reconnaisse toutes les valeurs négatives, mais quand j’ai entré une valeur négative pour le tester, il a quand même reconstitué cette valeur et a donné l’instruction fprintf pour mon instruction if. Par conséquent, je ne sais pas comment spécifier une valeur négative pour mon programme.
    J’apprécie toute aide, car j’ai très envie d’apprendre.
    Je vous remercie!

    Meilleure réponse

  •  

    if H<11000 && H~<0
    fprintf('You are in the Troposphere\n')
    else
    fprintf('A negative distance may of been entered, which is invalid for this program')

     

  • MATLAB: sommation de nombres à l’aide d’invites

    Je veux que le programme demande à l’utilisateur la valeur n (le nombre de valeurs à additionner). Je veux ensuite que le programme demande à l’utilisateur n fois un nombre, pour qu’il additionne ces nombres et finalement imprime le résultat. Toute aide serait appréciée, merci! Voici mon code jusqu’à présent:
     
    function sumnnums(n);
    prompt='Enter the value of n: ';
    n=input(prompt);
    sum=0;
    for i=1:n
    prompt='Enter a number: ';
    x(i)=input(prompt);
    end
    sum=sum+x;
    formatSpec='The sum of the numbers is %6.4f\n';
    fprintf(formatSpec,x(i));
    end
     

    Meilleure réponse

  • Deux erreurs:
    • La fonction ne doit pas avoir n comme argument. Attendez pour demander à l’utilisateur
    • n’utilisez pas « somme » comme nom de variable; c’est une fonction
    • si tu veux faire « sum = sum + x « il doit être dans la boucle et x doit être un scalaire. Mais, il n’y a aucune raison de le faire comme ça puisque vous stockez déjà les résultats dans un tableau. Faites simplement ceci:
     

    mysum = sum(x);

     

  • MATLAB: Comment exporter une chaîne avec timeperiod vers un fichier .dat

    J’ai une grande chaîne contenant une période de temps telle que 23-May-2009 02:00:00 (comme jointe). L’éditeur de variables dans Matlab ne peut pas afficher ces variables, car les variables ont plus de 524288 éléments. Je souhaite exporter les variables dans un fichier .dat, afin que je puisse voir la liste des variables. J’essaie d’utiliser les fonctions fopen et fprintf pour exporter les variables, mais sans succès. De l’aide? Je vous remercie.

    Meilleure réponse

  •  

    load hourlyperiod.mat
    d = hourlyperiod ;
    fid = fopen('iwant.dat','w') ;
    for i = 1:length(d)
    fprintf(fid,'%s \n',d(i,:)) ;
    end
    fclose(fid) ;

     

  • MATLAB: Comment puis-je afficher le résultat: le problème sur la commande fprintf

    J’écris le code comme suit:
     
    expo_result = ['quantile of exponential distribution =', num2str(quantile_expo)];
    normal_result = ['quantile of normal distribution =', num2str(quantile_normal)];
    lognormal_result = ['quantile of lognormal distribution =', num2str(quantile_lognormal)];
    gamma_result = ['quantile of gamma distribution =', num2str(quantile_gamma)];
    fprintf(expo_result, '%s\n\r' );
    fprintf(normal_result, '%s\n\r');
    fprintf(lognormal_result, '%s\n\r');
    fprintf(gamma_result, '%s\n\r');
     
    Mais je vois le résultat sur la fenêtre de commande comme suit:
    >> project_part_1
    quantile of exponential distribution =6.5472e-05quantile of normal distribution =82.864quantile of lognormal distribution =55.4211quantile of gamma distribution=86.6666>>
    Comment puis-je les imprimer séparément? Merci beaucoup.

    Meilleure réponse

  • La chaîne de formatage est la première, pas la dernière. Par exemple.,
     

    fprintf('%s\n\r', expo_result);