Jump to content



Απορια με index πινακων σε matlab


teo$

Recommended Posts

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

Υπαρχει τροπος να χρησιμοποιησω τα στοιχεια ενος πινακα σαν δεικτες σε ενα αλλο πινακα?

Εξηγουμαι

εστω οτι εχω α=[23,24,34

44,52,61]

θελω να φτιαξω ενα πινακα εστω β που να εχει σαν δεικτες τα στοιχεια του α.

Δηλαδη εστω ο β=[1,2,3

4,5,6]

θελω να μπορω να κανω το εξης β[23]=1.

Ειναι εφικτο κατι τετοιο?'Η πρεπει να ξεκιναω απο 0 η 1 παντα?Υπαρχει καποια εναλλακτικη?

Ελπιζω να εγινα κατανοητος.

Περιμενω βοηθεια...

Ευχαριστω

Θα πρέπει να ορίσεις τον πίνακα β με μέγιστο αριθμό στοιχείων το μεγαλύτερο στοιχείο του α.

Έτσι όπως έχεις τους α και β είναι και οι 2 ίδιου μεγέθους 6 άρα όταν γράψεις β[23]=1 θα προσπαθήσεις να βάλεις την τιμή 1 στο εικοστό τρίτο στοιχείο του πίνακα β που όμως δεν υπάρχει.Αν όμως ορίσεις το β σαν ένα πίνακα που έχει μέγιστο αριθμό στοιχείων το 61 τότε το β[23]=1 έχει νόημα όπως και το β[61] πχ.Υποθέτω όμως δεν θες να το κάνεις έτσι άρα όχι όπως το εννοείς δεν γίνεται.

Ναι εχεις δικιο σε αυτο.Δεν το εχω διατυπωσει κ πολυ καλα.Αυτο που θελω ειναι να βαλω μια ακολουθια αριθμων π.χ. 12,13,14,15,16,..... σαν δεικτες σε ενα πινακα και να ξεκιναει ο πινακας μου απο το 12 ομως.

Αρα αυτο που πορω να κανω ειναι να βαλω ενα πινακα μεχρι το μεγιστο που θελω ασ πουμε 100 και να βαλω τα στοιχεια σαν τιμες απο το 50 - 100 που θελω για παραδειγμα και ολα τα αλλα 0 ασ πουμε.Φανταζομαι δεν γινεται κατι αλλο.

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

Καλησπέρα,

τα index των πινάκων στο matlab ξεκινάνε απο το 1. Αν ξέρεις τον πίνακα A τότε μπορείς να βρείς τον μικρότερο αριθμό που περιέχει και να καλέσεις B((A(i)-min(A)+1) ωστε να αντιστοιχίσεις το μικρότερο αριθμό του A στο index 1 του πίνακα B. Αντίστοιχα ο πίνακας B θα πρέπει να είναι μεγέθους max(B)-min(B)+1.

  • 2 weeks later...

Archived

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

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

Important Information

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