teo$ Δημοσιεύτηκε Ιούλιος 17, 2012 #1 Κοινοποίηση Δημοσιεύτηκε Ιούλιος 17, 2012 Υπαρχει τροπος να χρησιμοποιησω τα στοιχεια ενος πινακα σαν δεικτες σε ενα αλλο πινακα?Εξηγουμαιεστω οτι εχω α=[23,24,34 44,52,61]θελω να φτιαξω ενα πινακα εστω β που να εχει σαν δεικτες τα στοιχεια του α.Δηλαδη εστω ο β=[1,2,3 4,5,6]θελω να μπορω να κανω το εξης β[23]=1.Ειναι εφικτο κατι τετοιο?'Η πρεπει να ξεκιναω απο 0 η 1 παντα?Υπαρχει καποια εναλλακτικη?Ελπιζω να εγινα κατανοητος.Περιμενω βοηθεια...Ευχαριστω Link to comment Share on other sites More sharing options...
nucleus Ιούλιος 17, 2012 #2 Κοινοποίηση Ιούλιος 17, 2012 Θα πρέπει να ορίσεις τον πίνακα β με μέγιστο αριθμό στοιχείων το μεγαλύτερο στοιχείο του α.Έτσι όπως έχεις τους α και β είναι και οι 2 ίδιου μεγέθους 6 άρα όταν γράψεις β[23]=1 θα προσπαθήσεις να βάλεις την τιμή 1 στο εικοστό τρίτο στοιχείο του πίνακα β που όμως δεν υπάρχει.Αν όμως ορίσεις το β σαν ένα πίνακα που έχει μέγιστο αριθμό στοιχείων το 61 τότε το β[23]=1 έχει νόημα όπως και το β[61] πχ.Υποθέτω όμως δεν θες να το κάνεις έτσι άρα όχι όπως το εννοείς δεν γίνεται. Link to comment Share on other sites More sharing options...
teo$ Ιούλιος 17, 2012 Author #3 Κοινοποίηση Ιούλιος 17, 2012 Ναι εχεις δικιο σε αυτο.Δεν το εχω διατυπωσει κ πολυ καλα.Αυτο που θελω ειναι να βαλω μια ακολουθια αριθμων π.χ. 12,13,14,15,16,..... σαν δεικτες σε ενα πινακα και να ξεκιναει ο πινακας μου απο το 12 ομως. Link to comment Share on other sites More sharing options...
nucleus Ιούλιος 17, 2012 #4 Κοινοποίηση Ιούλιος 17, 2012 Η αρίθμηση ξεκινάει από το 0. Link to comment Share on other sites More sharing options...
teo$ Ιούλιος 17, 2012 Author #5 Κοινοποίηση Ιούλιος 17, 2012 Αρα αυτο που πορω να κανω ειναι να βαλω ενα πινακα μεχρι το μεγιστο που θελω ασ πουμε 100 και να βαλω τα στοιχεια σαν τιμες απο το 50 - 100 που θελω για παραδειγμα και ολα τα αλλα 0 ασ πουμε.Φανταζομαι δεν γινεται κατι αλλο. Link to comment Share on other sites More sharing options...
nucleus Ιούλιος 17, 2012 #6 Κοινοποίηση Ιούλιος 17, 2012 Ναι μόνο έτσι μπορείς να το κάνεις με πίνακα.Εκτός και αν αλλάξεις δομή δεδομένων πχwww.mathworks.com/matlabcentral/fileexchange/33901-dictionary-data-structure ή http://www.mathworks.com/help/techdoc/matlab_prog/brqqo5e-1.html Link to comment Share on other sites More sharing options...
eloydark Ιούλιος 17, 2012 #7 Κοινοποίηση Ιούλιος 17, 2012 A = [ 11 12 13 14 15 16 17 18 19 20 ] ;B = [ 1 2 3 4 5 6 7 8 9 10] ;C = zeros(max(A),1);for i = 1:max([length(A);length(]) C(A(i)) = B(i);end Link to comment Share on other sites More sharing options...
backgman Ιούλιος 19, 2012 #8 Κοινοποίηση Ιούλιος 19, 2012 Καλησπέρα, τα index των πινάκων στο matlab ξεκινάνε απο το 1. Αν ξέρεις τον πίνακα A τότε μπορείς να βρείς τον μικρότερο αριθμό που περιέχει και να καλέσεις B((A(i)-min(A)+1) ωστε να αντιστοιχίσεις το μικρότερο αριθμό του A στο index 1 του πίνακα B. Αντίστοιχα ο πίνακας B θα πρέπει να είναι μεγέθους max(-min(+1. Link to comment Share on other sites More sharing options...
teo$ Ιούλιος 29, 2012 Author #9 Κοινοποίηση Ιούλιος 29, 2012 Ευχαριστω για την βοηθεια παιδες.Νομιζω εβγαλα ακρη. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.