Comment cree un programe matlab

Résolu/Fermé
d32bougie - 29 nov. 2008 à 17:25
Fee Fay Messages postés 635 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 31 mai 2009 - 1 déc. 2008 à 22:18
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
A voir également:

10 réponses

Fee Fay Messages postés 635 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 31 mai 2009 375
1 déc. 2008 à 21:04
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 :
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.
1
jai bien compri le programe jai pas pense a sa !
pour le 2eme je voulai dire les nombre premier entre 1et un nombre entier n
0
Fee Fay Messages postés 635 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 31 mai 2009 375
29 nov. 2008 à 20:43
Bonsoir
Utilise clock
Bonne nuit
0
merci pour votre reponse mais j'arive pas a le faire
c vous pouvez me dire plus sur sa svp
0
Fee Fay Messages postés 635 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 31 mai 2009 375
1 déc. 2008 à 00:06
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
0
bonsoir
merci pour ton aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fee Fay Messages postés 635 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 31 mai 2009 375
1 déc. 2008 à 19:43
Bonsoir
Pas de souci ;-)
Tu me diras si tu y es arrivé. Nous pourrons regarder ce que tu as fait.
Ciao !
0
bonsoir
voila je lé fait de cette façon
ns=input('donner un nombre ns en seconde ')
nj=(ns-rem(ns,86400))/(86400)
nh=(rem(ns,86400)-rem(rem(ns,86400),3600))/(3600)
nm=(rem(rem(ns,86400),3600)-rem(rem(rem(ns,86400),3600),60))/(60)
ns=rem(rem(rem(ns,86400),3600),60)
0
Fee Fay Messages postés 635 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 31 mai 2009 375
1 déc. 2008 à 20:43
Ça a l'air de marcher ;-)
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
0
merci
je suis entrin de faire mes exo et j'arrive pas a faire ce programe je sai que c facile mais je sai pas ce qui m'echape (un programe qui affiche tous les nombre entre 1 et n )
peut etre tu poura m'aidé c ce n'es pas trop te demander
bon soiré
0
Fee Fay Messages postés 635 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 31 mai 2009 375
1 déc. 2008 à 21:16
Ah d'accord...
La fonction primes de Matlab fait cela.
v=primes(n); te définit le vecteur des nombres premiers de 1 à n.
0
n=input('.....')
k=1;
for i=1:n
forj==1:n
a(i,j)=[n^k];
k=k+1;
end
end
a
jai fait ce programe mais il marche seulment jusk n =3 je sai pas pk il m'affiche des zero c n>3
0
Fee Fay Messages postés 635 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 31 mai 2009 375
1 déc. 2008 à 22:00
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 :
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
end
Et 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
end
Ensuite, 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.2950
En revanche, si tu demandes l'affichage de a(1,1) seul :
>> a(1,1)

ans =

     4
Si 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                4294967296
Bonne nuit
0
merci
jai cru que jai fait une faute ..merci pour ton aide
bonne nuit
0
Fee Fay Messages postés 635 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 31 mai 2009 375
1 déc. 2008 à 22:10
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.
0
oui jai deja cette remarque par mon prof mais j'oublier tj sa lol
merci infiniment
0
Fee Fay Messages postés 635 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 31 mai 2009 375
1 déc. 2008 à 22:18
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:
n=input('Entrer la taille de la matrice : ');
a=zeros(n);
k=(1:n^2);
a(k)=n.^k;
a=a.';
Bonne nuit
0