Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλα αστο , για να μη σε πρηζω και σενα το παραταω , δε το χω .

Το πολυ πολυ την βρισκω ετοιμη να δω πως γινεται, η δεν την γραφω και καθολου


Απλως μου φαινεται οτι ανεβασε το επιπεδο αποτομα , γιατι μεχρι και την προηγουμενη εργασια τις ελυνα ολες τις ασκησεις , με μικροαποριες , που ειτε τις ελυνα μεσω google ειτε εδω.

 

Τωρα απο τις 5 ασκησεις μπορεσα να κανω μονο τις 2

Δημοσ.

Καλα αστο , για να μη σε πρηζω και σενα το παραταω , δε το χω .

Το πολυ πολυ την βρισκω ετοιμη να δω πως γινεται, η δεν την γραφω και καθολου

Απλως μου φαινεται οτι ανεβασε το επιπεδο αποτομα , γιατι μεχρι και την προηγουμενη εργασια τις ελυνα ολες τις ασκησεις , με μικροαποριες , που ειτε τις ελυνα μεσω google ειτε εδω.

 

Τωρα απο τις 5 ασκησεις μπορεσα να κανω μονο τις 2

 

Με αυτό που σου παρέθεσα στο πρώτο μου post λύνεις μία χαρά την άσκηση. Απλά δεν κάθεσαι να το βρεις και να δεις πως γίνεται. 

 

Δημοσ.

Οχι και δεν εκατσα.. 2 ωρες το σκεφτομαι και το ψαχνω .

Απλα ειμαι σιγουρος 100% οτι το σκεφτομαι λαθος γιαυτο και το παρατησα, γιατι οσες φορες ειπα να το ξαναξεκινησω απο την αρχη , παλι λαθος το σκεφτομαι , μετα μου βγαζει και κατι error το octave, νευριαζω και το κλεινω, και μετα παλι απο την αρχη τα ιδια. :P

 

Με αυτο που μου εστειλες , δε βρηκα κατι που μπορει να με βοηθησει , γιαυτο λεω οτι σκεφτομαι λαθος..

Δημοσ.

Αυτό που ψάχνεις στην ουσία είναι ένας δυναμικός τρόπος να επιλέγεις συγκεκριμένα στοιχεία από έναν πίνακα. 

 

Στο παράδειγμα που σου έδωσα έχει τον τρόπο να επιλέγεις συγκεκριμένα στοιχεία. Νομίζω πως μπορείς, αυξάνοντας σιγά σιγά την δυσκολία, να βρεις πώς θα το κάνεις μέχρι εκεί. 

 

Π.χ., εάν θέλει κανείς να παίρνει τα στοιχεία από ένα τετράγωνο μέσα σε έναν πίνακα ξέροντας μόνο το μήκος πλευράς θα μπορούσε να γράψει:

A(((side_length/2) - the_center)(side_length/2) + the_center), ((side_length/2) - the_center)(side_length/2) + the_center))

Όπου side_length είναι το μήκος πλευράς του τετραγώνου που θέλει και the_center είναι το κεντρικό στοιχείο του τετραγώνου που θα πάρει. 

 

Και από αυτό (εάν κατάλαβα καλά) θα θες να βρεις εάν έχουν κάποια τιμή... οπότε θέτεις το παραπάνω ίσο με B και έχεις το logical indexing στον B. 

 

Υ.Γ. Φυσικά δεν έκανα τους ελέγχους για integer indices, indices out of length κτλ.. ένα γενικό παράδειγμα για να καταλάβεις την ιδέα. 

 

Δημοσ.

Αυτο που εγραψες με το τετραγωνο το καταλαβα , απλα το θεμα και παλι ειναι οτι δεν εχω τη λογικη του πραγματος, και δε ξερω και πως θα την αποκτησω.

 

Θα το παλεψω τωρα στο κυκλο να δω αν βγαλω ακρη :P

Δημοσ.

Με δεδομενα τα N,r,x0,y0 :

 

[x,y]=meshgrid(1:N , 1:N);
points = [x(:) y(:)];
distance = sqrt((x-x0)^2+(y-y0)^2);

distance(distance<=r) = 0;

distance(distance>r) = 64;

 

Που ειναι το λαθος μου ???

 

Tα διαγραμματα που μου βγαζει ειναι αυτα:

 

image.jpg

 

Το ενα ειναι για Ν=300 κτλ

και το αλλο για Ν=400 κτλ

Δημοσ.

distance(distance<=r) = 0;


distance(distance>r) = 64;


 


μακάρι να ήταν έτσι απλά! Βάζε και τι σφάλμα δίνει διότι από μυαλού μπορεί να γίνονται παρερμηνείες.


Είδα το αποτέλεσμα που έβαλες, πρόσεχε ψάχνεις κύκλο και όχι σε απλό όριο γραμμής!


Του λες στο πίνακα distance με index distance<=r ε κάπου εδώ σου λέει η μηχανή what; i ll do what i can.


Όρισε του σε ποια όρια θα ψάξει, δηλ distance>r έως που και σε ποιο πίνακα να το αναζητήσει; π.χ. matrixdistance=find(distance<=r) σου δίνει αμέσως τις θέσεις (index) στο πίνακα.


Σπάστο σε απλά λογικά βήματα. Βρες ποια στοιχεία δίνει η εντολή: distance<=r. Αποθήκευσέ τα σε άλλο πίνακα. Μετά μη το βάλεις να ψάξει να βρει τα στοιχεία αυτά αλλά το index αυτών στο πίνακα (είναι τελείως άλλο πράγμα να βρει τη τιμή και άλλο να βρει ποια στοιχεία ανήκουν στην ερώτηση που κάνεις, δηλ σε ποια θέση του πίνακα βρίσκεται το στοιχείο με τιμή αποδεκτή για τη distance<=r;) και άλλαξέ του τη τιμή βάσει θέσης των στοιχείων στο πίνακα distance ύστερα.


Δημοσ.

Δε μπορω να το καταλαβω αυτο.

 

Οταν του δινεις εναν τυχαιο πινακα και του λες πχ " r(r>2) = 0 " γιατι δε θελει ορια ?

Εχω κανει τις αλλες 4 , και μου εχει μεινει αυτη η γ@μημενη....

Και το θεμα ειναι οτι δε μπορω να καταλαβω καθολου τη λογικη αυτης της ασκησης , ενω την εχει και δευτερη σε σειρα δυσκολιας απο τις 5 και οπως ειπα τις αλλες τις εκανα, και δεν εχω και χρονο να πεισμωσω και να την λιωσω

Δημοσ.

Καταρχάς, θα πρέπει να καταλάβεις τι του λες με το:

 

 

r(r>2) = 0;

 

Για αυτό σου έβαλα το link στην αρχή. 

 

Αυτό που του λες είναι:

 

  • Βρες ποια στοιχεία (τα indices δηλαδή) του r είναι μεγαλύτερα του 2 (με το r > 2)
  • Κάνε τα στοιχεία του r που έχουν τα indices του προηγούμενου βήματος ίσα με 0 (με το r(r>2) =0 )

Η άσκηση είναι πολύ απλή αλλά δίνεις την εντύπωση ότι δεν θέλεις να ασχοληθείς. Π.χ., θα μπορούσες να κάνεις:

 

 

r(r>2)

 

Και να δεις τι σου βγάζει. Μετά να δεις τα στοιχεία του r και να προσπαθήσεις να καταλάβεις τι γίνεται. Μετά να δεις και το link που παρέθεσα στην αρχή και να καταλάβεις ακριβώς τι γίνεται εκεί μέσα. 

 

Αντιθέτως, η εντύπωση που σχηματίζω (που μπορεί να είναι και λανθασμένη) είναι ότι γράφεις 5 - 10 γραμμές κώδικα με ό,τι βλέπεις εδώ και κοιτάς μόνο το αποτέλεσμα εάν σου κάνει. Εάν δεν σου κάνει έρχεσαι πάλι εδώ για να ρωτήσεις πώς θα το φτιάξεις. 


Γιατί δεν νομίζω να μην καταλαβαίνεις τι είναι το ">". Ούτε τι είναι το r > 2. Εάν δεν το καταλάβαινες, μία απλή και λογική σκέψη θα ήταν να το γράψεις στο command window και να δεις τι επιστρέφει και να συγκρίνεις το αποτέλεσμα με τα δεδομένα σου και την εντολή που δίνεις. 

 

Δημοσ.

Λανθασμενη ειναι :P

Εκανα ολοιδιο προγραμμα απλα με μικρο Ν=10 κατω στο command window , για να δω αναλυτικα τι παρουσιαζεται με καθε εντολη.

Απλα οπως ειπα δεν εχω το χρονο να κατσω να πεισμωσω, γιαυτο και γραφω συχνα εδω.

 

Η αληθεια ειναι οτι μερικα στοιχειωδη δε τα ξερω, καθως δεν εχω απο που να διαβασω. Το βιβλιο του αναφερει μονο τα ευκολα ( πραξεις πινακων , αντε καμια plot και κατι τετοια )

Απλα ξαναλεω δε ξερω γιατι , αλλα κολλησα πολυ σε αυτη την ασκηση , θα αρχισω να πιστευω οτι ειμαι βλακας στο τελος :P

Mε μπερδευει και το meshgrid , εγω εχω στο μυαλο μου οτι μου δινει συντεταγμενες , οποτε με τη συνθηκη που εγραψα , για καθε μια συντεταγμενη αν το distance ειναι μεγαλυτερο να το "ασπριζει" αλλιως να το "μαυριζει" , αλλα δεν νομιζω να πηγαινει ετσι


Το λαθος μου ειναι σε αυτα:

distance(distance<=r) = 0;

distance(distance>r) = 64;      ?

 

Τα προηγουμενα ειναι σωστα ?

Δημοσ.

Τελικα μια χαρα τα ειχα η μαλακια μου ηταν οτι ξεχασα να βαλω τελειες στην υψωση στο τετραγωνο στο distance αφου το x,y ειναι πινακες.

Ευχαριστω για τη βοηθεια

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...