Comment cree un programe matlab
Résolu
d32bougie
-
Fee Fay Messages postés 635 Date d'inscription Statut Membre Dernière intervention -
Fee Fay Messages postés 635 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voila jai essye de faire un programe tu lui donne un temps en seconde il le t'affiche en jour ,en h , minute et second
svp aidez moi
voila jai essye de faire un programe tu lui donne un temps en seconde il le t'affiche en jour ,en h , minute et second
svp aidez moi
A voir également:
- Comment cree un programe matlab
- Comment créer un groupe whatsapp - Guide
- Cree un compte google - Guide
- Comment créer un compte gmail - Guide
- Créer un lien pour partager des photos - Guide
- Comment creer un organigramme - Guide
10 réponses
Tu devrais un peu chercher s'il s'agit d'exercices...
Il y a rien à faire en Matlab pour afficher les entiers de 1 à n.
Définir le vecteur v des entiers de 1 à n sous Matlab, c'est v=(1:n);
Cela doit être écrit dans ton cours.
Sinon pour ton programme précédent tu pouvais aussi faire comme ça :
Il y a rien à faire en Matlab pour afficher les entiers de 1 à n.
Définir le vecteur v des entiers de 1 à n sous Matlab, c'est v=(1:n);
Cela doit être écrit dans ton cours.
Sinon pour ton programme précédent tu pouvais aussi faire comme ça :
t=input('Donner un temps t en secondes : '); ns = rem(t,60); nm = rem((t-ns)/60,60); nh = rem(((t-ns)/60-nm)/60,24); nj = (((t-ns)/60-nm)/60-nh)/24; isplay(['Le temps ' num2str(t) 's donne ' num2str(nj) 'j ' num2str(nh) 'h ' num2str(nm) 'min ' num2str(ns) 's']);D'ailleurs, je voulais écrire Donner un temps et non Donner un nombre temps dans le programme précédent.
Bonsoir
Dans la mesure où le message était difficilement lisible, je n'ai pas compris tout à fait la demande.
Donc tu ne veux pas afficher le temps d'aujourd'hui en années-mois-jours-heures-minutes-secondes en utilisant clock au lieu de time qui te donne la date courante en secondes.
Tu souhaites donc donner un temps en secondes et avoir une conversion en jours-heures-minutes-secondes.
j = 24h
h = 60 min
min = 60s
*Tu prends donc ton temps t en secondes, tu fais la division euclidienne (quotient nmin et reste s) de ce temps par 60, le reste s te donne le nombre de secondes dans ta date en jours-minutes-secondes.
*Tu fais la division euclidienne (quotient nh et reste min) du quotient nmin précédent par 60. Le reste min te donne le nombre de minutes dans ta date en jours-minutes-secondes.
*Tu fais la division euclidienne (quotient j et reste h) du quotient nh précédent par 24. Le reste h te donne le nombre d'heures dans ta date en jours-minutes-secondes et le quotient j te donne le nombre de jours.
Bonne nuit
Dans la mesure où le message était difficilement lisible, je n'ai pas compris tout à fait la demande.
Donc tu ne veux pas afficher le temps d'aujourd'hui en années-mois-jours-heures-minutes-secondes en utilisant clock au lieu de time qui te donne la date courante en secondes.
Tu souhaites donc donner un temps en secondes et avoir une conversion en jours-heures-minutes-secondes.
j = 24h
h = 60 min
min = 60s
*Tu prends donc ton temps t en secondes, tu fais la division euclidienne (quotient nmin et reste s) de ce temps par 60, le reste s te donne le nombre de secondes dans ta date en jours-minutes-secondes.
*Tu fais la division euclidienne (quotient nh et reste min) du quotient nmin précédent par 60. Le reste min te donne le nombre de minutes dans ta date en jours-minutes-secondes.
*Tu fais la division euclidienne (quotient j et reste h) du quotient nh précédent par 24. Le reste h te donne le nombre d'heures dans ta date en jours-minutes-secondes et le quotient j te donne le nombre de jours.
Bonne nuit
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir
Pas de souci ;-)
Tu me diras si tu y es arrivé. Nous pourrons regarder ce que tu as fait.
Ciao !
Pas de souci ;-)
Tu me diras si tu y es arrivé. Nous pourrons regarder ce que tu as fait.
Ciao !
Ça a l'air de marcher ;-)
Si tu veux une sortie écran plus propre, tu peux rajouter des ; et une ligne. Comme ceci :
Si tu veux une sortie écran plus propre, tu peux rajouter des ; et une ligne. Comme ceci :
t=input('Donner un nombre temps t en secondes : '); nj=(t-rem(t,86400))/(86400); nh=(rem(t,86400)-rem(rem(t,86400),3600))/(3600); nm=(rem(rem(t,86400),3600)-rem(rem(rem(t,86400),3600),60))/(60); ns=rem(rem(rem(t,86400),3600),60); display(['Le temps ' num2str(t) 's donne ' num2str(nj) 'j ' num2str(nh) 'h ' num2str(nm) 'min ' num2str(ns) 's']);Bonne soirée
Ah d'accord...
La fonction primes de Matlab fait cela.
v=primes(n); te définit le vecteur des nombres premiers de 1 à n.
La fonction primes de Matlab fait cela.
v=primes(n); te définit le vecteur des nombres premiers de 1 à n.
Tout d'abord, vérifie que a n'a pas été défini quelque part avec une taille plus grande que celle que tu utilises dans ton programme.
Si tu fais par exemple :
Donc soit tu fais un clear a; avant de lancer ton programme à chaque fois, soit tu définis la taille de a dans le programme (c'est mieux).
Si tu lances ton programme pour n=4 par exemple, tu obtiens ceci :
Si tu fais par exemple :
a=zeros(10); n=input('Enter la taille de la matrice : ') k=1; for i=1:n for j=1:n a(i,j)=[n^k]; k=k+1; end endEt que tu lances ton programme pour n=5 par exemple, tu obtiendra des zéros pour i>6 ou j>6.
Donc soit tu fais un clear a; avant de lancer ton programme à chaque fois, soit tu définis la taille de a dans le programme (c'est mieux).
n=input('Enter la taille de la matrice : ') a=zeros(n); k=1; for i=1:n for j=1:n a(i,j)=[n^k]; k=k+1; end endEnsuite, même si tu fais cela, l'affichage t'indiquera quand même des zéros quand n sera assez grand, mais il s'agit seulement de l'affichage.
Si tu lances ton programme pour n=4 par exemple, tu obtiens ceci :
> a a = 1.0e+09 * 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0001 0.0003 0.0010 0.0042 0.0168 0.0671 0.2684 1.0737 4.2950En revanche, si tu demandes l'affichage de a(1,1) seul :
>> a(1,1) ans = 4Si tu veux changer cet affichage, utilise format. Ici, si tu veux afficher a correctement, l'affichage le plus adapté est long g je pense ; le format long ne conviendra pas si tu augmentes encore la taille de n.
>> format long g >> a a = 4 16 64 256 1024 4096 16384 65536 262144 1048576 4194304 16777216 67108864 268435456 1073741824 4294967296Bonne nuit
Tu es le bienvenu ;-)
Cela dit, tu ne m'as pas laisser le temps de modifier mon message. :-(
J'allais ajouter qu'il fallait éviter d'utiliser i et j sous Matlab parce qu'ils sont prédéfinis (nombres complexes). Remplace les respectivement par ii et jj par exemple, même si ton programme marche très bien.
Sinon, c'est quelque chose qui peut être source d'erreurs si un jour tu as à utiliser le nombre complexe i dans une boucle en i.
Cela dit, tu ne m'as pas laisser le temps de modifier mon message. :-(
J'allais ajouter qu'il fallait éviter d'utiliser i et j sous Matlab parce qu'ils sont prédéfinis (nombres complexes). Remplace les respectivement par ii et jj par exemple, même si ton programme marche très bien.
Sinon, c'est quelque chose qui peut être source d'erreurs si un jour tu as à utiliser le nombre complexe i dans une boucle en i.
Il n'y a pas de quoi !
Et ton prof ne t'a pas dit d'utiliser le fait que tu peux travailler vectoriellement avec Matlab ? :-D
Ton programme se simplifie ;-)
D'ailleurs je viens de me rendre compte que j'avais écrit Enter au lieu d'Entrer:
Et ton prof ne t'a pas dit d'utiliser le fait que tu peux travailler vectoriellement avec Matlab ? :-D
Ton programme se simplifie ;-)
D'ailleurs je viens de me rendre compte que j'avais écrit Enter au lieu d'Entrer:
n=input('Entrer la taille de la matrice : '); a=zeros(n); k=(1:n^2); a(k)=n.^k; a=a.';Bonne nuit
pour le 2eme je voulai dire les nombre premier entre 1et un nombre entier n