Comment cree un programe matlab

Résolu
d32bougie -  
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

10 réponses

Fee Fay Messages postés 635 Date d'inscription   Statut Membre Dernière intervention   377
 
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
d32bougie
 
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   Statut Membre Dernière intervention   377
 
Bonsoir
Utilise clock
Bonne nuit
0
d32bougie
 
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   Statut Membre Dernière intervention   377
 
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
d32bougie
 
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   Statut Membre Dernière intervention   377
 
Bonsoir
Pas de souci ;-)
Tu me diras si tu y es arrivé. Nous pourrons regarder ce que tu as fait.
Ciao !
0
d32bougie
 
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   Statut Membre Dernière intervention   377
 
Ç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
d32bougie
 
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   Statut Membre Dernière intervention   377
 
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
d32bougie
 
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   Statut Membre Dernière intervention   377
 
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
d32bougie
 
merci
jai cru que jai fait une faute ..merci pour ton aide
bonne nuit
0
Fee Fay Messages postés 635 Date d'inscription   Statut Membre Dernière intervention   377
 
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
d32bougie
 
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   Statut Membre Dernière intervention   377
 
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