Jump to content



matlab function


deninho

Recommended Posts

Δημοσιεύτηκε

Καλησπέρα

έχω μια εισαγωγική απορία στις function της matlab. Συγκεκριμένα έχω γράψει αυτήν εδώ


function=functinput(N,a);

fprintf('Input # of elements to be computed: ');
N=input('');
a=zeros(1,N);
for j=1:1:N
fprintf('type the element # %i: ',j);
a(j)=input('');
fprintf('\n');
end
end

αλλά δεν έχω καταλάβει τι πρέπει να συμπληρώσω για να μου επιστρέφει την τιμή του N καθώς και τον πίνακα a, στο κυρίως πρόγραμμα.

Πάσα βοήθεια δεκτή.

Η συνάρτηση αυτή τι παράγει; δε το έχεις ορίσει.

Εκτός και αν παράγει τη μεταβλητή "function" αλλά θα πρέπει να της αλλάξεις όνομα π.χ. func, η οποία τυπώνει για 1:N type the element # %i: j; N φορές και ίδια τιμή του a αλλά με διαφορετικό j.

Για να λάβεις σε μεταβλητή κατευθείαν την εισαγωγή του χειριστή μπορείς να το τρέξεις πιο απλά όπως στο ακόλουθο παράδειγμα.

func=functinput(N,a);

Ν=input('Input # of elements to be computed: ');
a=zeros(1,N);
for j=1:1:N
fprintf('type the element # %i: ',j);
a(j)=Ν;
fprintf('\n');
end
end

Θέλω να ζητάω από το χρήστη να μου πει πόσα στοιχεία θα εισάγει για επεξεργασία (στο κυρίως πρόγραμμα), και να μου δίνει ένα ένα τα στοιχεία (σε πίνακα). Αυτή η function μπαίνει στην αρχή του προγράμματος.

Αυτό που θέλω, μετά είναι να παίρνω στο κυρίως πρόγραμμα τόσο το πλήθος, όσο και τον πίνακα με τα στοιχεία αυτά (και κάτι αθροίσματα, γινόμενα κλπ, αλλά αν καταλάβω πως παίρνω πίσω τις τιμές μου, θα το προσθέσω μόνος μου)

Ένα πιο περιγραφικό παράδειγμα θα βοηθούσε διότι δεν είναι εύκολα αντιληπτό ακριβώς τι θες να υλοποιήσεις βάσει του κώδικα που παρέθεσες.

Όπως πιθανώς να κατάλαβες είναι από άσκηση από τη σχολή. Ανέβασα την εργασία. Αν δεις, και στις 3 ασκήσεις, στα βήματα 1, 2, 3, ζητάει το ίδιο πράγμα. Οπότε σκέφτηκα ότι αντί να το επαναλαμβάνω στο πρόγραμμα, να το βάλω σε μια ξεχωριστή function, την οποία θα καλούν τα 3 προγράμματα.

Ελπίζω να το εξήγησα λίγο καλύτερα τώρα :p

υγ. η εργασία έχει τελειώσει κι έχει παραδοθεί πλέον, απλά ενδιαφερόμουν να τη σουλουπώσω λίγο, για να κερδίσουμε τη συμπάθεια του καθηγητή και να μην πάρει σοβαρά το όποιο (μαθηματικό) λάθος :p Και συνεχίζω να ενδιαφέρομαι για το αρχικό μου ερώτημα, προφανώς :)

Askisi_2.pdf

Τα 3 πρώτα. Τα υπόλοιπα αν σκαλώσεις ζητάς tips, ο σκοπός είναι να μαθαίνουμε :happy:

clear all
clearvars
clc
%1) Να ζητάει από το χρήστη να ορίσει, εξωτερικά από το πληκτρολόγιο, πόσοι αριθμοί θα καταχωρηθούν στον υπολογιστή (Ν).
N = input('Αριθμοί προς καταχώρηση: ');
a=zeros(1,N);
athr=zeros(1,N);
gin=zeros(1,N);
mesoro=zeros(1,N);
% 2) Να ζητάει από το χρήστη να εισάγει, εξωτερικά από το πληκτρολόγιο, τους αριθμούς αυτούς (αi).
for i=1:N

a(i)=input('Εισάγετε τον πρώτο αριθμό: ');
b(i)=input('Εισάγετε τον δεύτερο αριθμό: ');

athr(i)=sum([a(i), b(i)])
ATHR(:,i) = [athr(i)];
gin(i) = [a(i)] * [b(i)]
GIN(:,i) = gin(i);
formean = [a(i),b(i)];
mesoro(i) = mean(formean)
MESORO(:,i) =mesoro(i);
end
% 3) Ο υπολογιστής να υπολογίζει το άθ2ροισμα, το γινόμενο και το μέσο όρο των αριθμών αυτών (s, g, μ, αντίστοιχα).
%πινακας των αποτελεσμάτων

ATHR
GIN
MESORO

Archived

This topic is now archived and is closed to further replies.

×
×
  • Δημιουργία...

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.