emmarap Δημοσ. 1 Μαρτίου 2012 Δημοσ. 1 Μαρτίου 2012 ΚΑΛΗΣΠΕΡΑ, ΕΧΩ ΜΙΑ ΕΡΓΑΣΙΑ ΣΤΗΝ ΜΑΤLAB ΚΑΙ ΘΑ ΗΘΕΛΑ ΤΗΝ ΒΟΗΘΕΙΑ ΣΑΣ.EΧΩ ΕΝΑΝ ΠΙΝΑΚΑ ΠΟΥ ΕΧΕΙ ΕΠΑΝΑΛΑΜΒΑΝΟΜΕΝΕΣ ΤΙΜΕΣ ΣΤΙΣ ΣΤΗΛΕΣ ΕΝΟΣ ΠΙΝΑΚΑ ΚΑΙ ΘΕΛΩ ΝΑ ΠΑΡΩ ΜΟΝΟ ΜΙΑ ΦΟΡΑ ΤΗΝ ΚΑΘΕ ΤΙΜΗ.ΜΠΟΡΕΙΤΕ ΝΑ ΜΕ ΒΟΗΘΗΣΕΤΕ;;;ΕΧΩ ΚΑΝΕΙ ΤΟ ΕΞΗΣ ΠΡΟΒΛΗΜΑ (ΟΠΟΥ MIN ΕΙΝΑΙ Ο ΑΡΧΙΚΟΣ ΜΟΥ ΠΙΝΑΚΑΣ): for j=1:p1 for i=1:n if MIN(j,i)~=MIN(j+1,i) m1(j,i)=MIN(j,i); else if MIN(j,i)==MIN(:,i) m1(j,i)=MIN(j,i); end end end end ΕΥΧΑΡΙΣΤΩ ΕΚ ΤΩΝ ΠΡΟΤΕΡΩΝ
Timonkaipumpa Δημοσ. 1 Μαρτίου 2012 Δημοσ. 1 Μαρτίου 2012 Καταρχάς, αυτό που έχεις παραθέσει δεν τρέχει σε MATLAB. Γράψε κάτι που να τρέχει εδώ είμαστε.
marios_geo Δημοσ. 1 Μαρτίου 2012 Δημοσ. 1 Μαρτίου 2012 Μην χρησιμοποιείς σαν ονομασία πίνακα MIN. Είναι δεσμευμένη λέξη, και μπορεί να δημιούργησει προβλήματα. Επίσης, τίποτα δεν εγγυάται ότι μετα την αφαίρεση των διπλών τιμών, κάθε στήλη θα έχει τον ίδιο αριθμο γραμμών. Άρα δεν μπορείς να τον δώσεις σαν ένα πίνακα. (γίνεται δηλαδή σαν αλλα θέλει λιγάκι έξτρα κόπο), Εγώ θα το έγραφα κάπως έτσι. > [m,n]=size(A); c=zeros(m,n); for i=1:n B=unique(A(:,i)); c(1:length(,i)=B; end
emmarap Δημοσ. 1 Μαρτίου 2012 Μέλος Δημοσ. 1 Μαρτίου 2012 ευχαριστω παρα πολυ με εσωσες!να ρωτησω και κατι αλλο στην εντολη repmat πως γινεται να κανω να εχει 10 επαναληψεισ στην πρωτη γραμμη,μετα η δευτερη 8 η τριτη 6 κλπ γιατι δεν μπορω να το βρω.Την βαζω σε for και εχω προβλημα. Ευχαριστω
marios_geo Δημοσ. 1 Μαρτίου 2012 Δημοσ. 1 Μαρτίου 2012 Δεν καταλαβαίνω τι θες; Μπορείς να επαναδιατυπώσεις; Η repmat, δημιουργεί "αντίγραφα" ενός πινακα μετατοπισμένα κατά mXn.
emmarap Δημοσ. 2 Μαρτίου 2012 Μέλος Δημοσ. 2 Μαρτίου 2012 εχω εναν πινακα και θελω να δημιουργησω εναν καινουργιο στον οποιο η πρωτη γραμμα του αρχικου πινακα επεναλαμβανεται 10 φορες,η δευτερη 8,η τριτη 6 κλπ.ΤΟΥ ΚΑΝΩ ΤΗΝ ΕΝΤΟΛΗ REPMAT ΑΛΛΑ ΜΟΥ ΤΙΣ ΕΠΑΝΑΛΑΜΒΑΝΕΙ ΟΛΕΣ 10 ΦΟΡΕΣ.ΤΗΝ ΒΑΖΟ ΣΕ FOR ΑΛΛΑ ΚΑΙ ΠΑΛΙ ΜΟΥ ΤΙΣ ΕΠΑΝΑΛΑΜΒΑΝΕΙ ΟΛΕΣ ΤΙΣ ΓΡΑΜΜΕΣ 5 ΦΟΡΕΣ.ΜΠΟΡΕΙ ΝΑ ΜΕ ΒΟΗΘΗΣΕΙ ΚΑΠΟΙΟΣ; ΕΥΧΑΡΙΣΤΩ
Timonkaipumpa Δημοσ. 2 Μαρτίου 2012 Δημοσ. 2 Μαρτίου 2012 Εάν A είναι ο πρώτος πίνακας και N οι φορές της επανάληψης για την πρώτη γραμμή: > B = []; for indx = 1:size(A, 1) B = [b; repmat(A(indx, , (N - (2*(indx-1))), 1)]; end Εάν δεν φροντίσεις τα μεγέθη, θα έχεις λάθη. Για την ακρίβεια, εάν δεν καταλάβεις τι κάνεις και δεν φροντίσεις κατάλληλα τα μεγέθη, ο παραπάνω κώδικας θα σου πετάει λάθος. Εάν δώσεις σωστά τα μεγέθη, τότε ο παραπάνω κώδικας είναι μία χαρά. Επίσης, σταμάτα να γράφεις με κεφαλαία. Ακόμα, σε πια σχολή σας βάζουν τόσο απλά tasks σε MATLAB αλλά δεν μπορείτε να τα λύσετε αλγοριθμικά;
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα