Maverick_7 Δημοσ. 16 Οκτωβρίου 2009 Δημοσ. 16 Οκτωβρίου 2009 Καλησπέρα παιδιά , Θα ήθελα να ρωτήσω τους πιο σχετικούς του forum αν γίνεται με κάποιο τρόπο να δημιουργώ έναν τετραγωνικό πίνακα στο matlab δίνοντας ως παράμετρο την διάστασή του n. Δηλαδή δίνοντας 2 να μου φτιάχνει έναν πίνακα 2χ2 , δίνοντας 5 να φτιάχνει έναν πίνακα 5χ5 κοκ... Συγκεκριμένα έχω ένα σύστημα που περιέχει πολλαπλασιασμούς πινάκων και θέλω να ελέγχω τα αποτελέσματα για διάφορες διαστάσεις των πινάκων. Οπότε δεν θέλω να το γράφω ξανά και ξανά για τις διάφορες διαστάσεις .. Υπάρχει κάποιος τρόπος ή συνάρτηση για αυτό ? Ευχαριστώ ..
MauriDalia Δημοσ. 16 Οκτωβρίου 2009 Δημοσ. 16 Οκτωβρίου 2009 Καλησπέρα παιδιά , Θα ήθελα να ρωτήσω τους πιο σχετικούς του forum αν γίνεται με κάποιο τρόπο να δημιουργώ έναν τετραγωνικό πίνακα στο matlab δίνοντας ως παράμετρο την διάστασή του n. Δηλαδή δίνοντας 2 να μου φτιάχνει έναν πίνακα 2χ2 , δίνοντας 5 να φτιάχνει έναν πίνακα 5χ5 κοκ... Συγκεκριμένα έχω ένα σύστημα που περιέχει πολλαπλασιασμούς πινάκων και θέλω να ελέγχω τα αποτελέσματα για διάφορες διαστάσεις των πινάκων. Οπότε δεν θέλω να το γράφω ξανά και ξανά για τις διάφορες διαστάσεις .. Υπάρχει κάποιος τρόπος ή συνάρτηση για αυτό ? Ευχαριστώ .. A=rand(2,2) φτιαχνει εναν πινακα 2x2 με τυχαια στοιχεια..αν καταλαβα καλα
Dr.Fuzzy Δημοσ. 16 Οκτωβρίου 2009 Δημοσ. 16 Οκτωβρίου 2009 Καλησπέρα παιδιά , Θα ήθελα να ρωτήσω τους πιο σχετικούς του forum αν γίνεται με κάποιο τρόπο να δημιουργώ έναν τετραγωνικό πίνακα στο matlab δίνοντας ως παράμετρο την διάστασή του n. Δηλαδή δίνοντας 2 να μου φτιάχνει έναν πίνακα 2χ2 , δίνοντας 5 να φτιάχνει έναν πίνακα 5χ5 κοκ... Συγκεκριμένα έχω ένα σύστημα που περιέχει πολλαπλασιασμούς πινάκων και θέλω να ελέγχω τα αποτελέσματα για διάφορες διαστάσεις των πινάκων. Οπότε δεν θέλω να το γράφω ξανά και ξανά για τις διάφορες διαστάσεις .. Υπάρχει κάποιος τρόπος ή συνάρτηση για αυτό ? Ευχαριστώ .. Τι πίνακας; Identity για παράδειγμα; > eye(4) Προσδιόρισε το λίγο καλύτερα.
Maverick_7 Δημοσ. 18 Οκτωβρίου 2009 Μέλος Δημοσ. 18 Οκτωβρίου 2009 Έστω ότι θέλω να παίρνω τον πίνακα αυτής της μορφής > A = -1 1 0 0 0 0 -1 1 0 0 0 0 -1 1 0 0 0 0 -1 1 0 0 0 0 -1 για διάφορες διαστάσεις . Δλδ 10x10 , 20x20 κοκ. Πώς γίνεται? Χωρίς να κάθομαι κάθε φορά να τον γράφω αναλυτικά ..
Dr.Fuzzy Δημοσ. 19 Οκτωβρίου 2009 Δημοσ. 19 Οκτωβρίου 2009 Αν και δεν συνηθίζω να δίνω έτοιμη την λύση...Να ένας τρόπος να το κάνεις. > clear all; % clear your memory N = 10; % Define Matrix Dimensions (NxN) B = -eye(N); % Template: NxN Identity Matrix * (-1) C = eye(length(-1); % (N-1)x(N-1) Identity Matrix % Custom D: Do some horizontal and vertical shifts D = vertcat(horzcat(zeros(length(C),1),C),zeros(1,length()); E = B+D; % Add template with custom matrix...and there you are! Όπως θα παρατηρήσεις δεν χρησιμοποιώ πουθενά for loops, τα οποία στο MATLAB καθυστερούν σημαντικά την ταχύτητα εκτέλεσης του κώδικα και καλό είναι αποφεύγονται όπου αυτό είναι δυνατό!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.