Title: Matlab βοηθεια Post by: kaplanis on December 30, 2005, 02:26:17 am Ειμαι ντιπ για ντιπ τουβλο στο ματλαμπ. :-[ Αν ξερει κανεις να μου πει πως μπορω να ορισω μια δικια μου συναρτηση, να ορισω ποια θα ειναι η μεταβλητη και μετα να την σχεδιασω
Title: Απ: Matlab βοηθεια Post by: sparos on December 30, 2005, 02:40:09 am Αν έχεις το βιβλίο εργαστηριακών ασκήσεων του Μαργαρη μαζί σου τότε κοίτα στις τελευταίες σελίδες τα γράφει αυτά απλά και γρήγορα!!!!
Title: Απ: Matlab βοηθεια Post by: kaplanis on December 30, 2005, 02:50:28 am Το ξερω οτι εχει προνοησει ο President αλλα το χω αφησει θεσσαλονικη το βιβλιο
Title: Απ: Matlab βοηθεια Post by: fugiFOX on December 30, 2005, 14:24:11 pm ανοίγεις ένα νεο m-file και ξεκινάς στην πρώτη γραμμή με τη δήλωση
function [y1,y2,y3]=somename(x1,x2,x3) όπου τα x είναι τα inputs και τα y τα outputs, ενώ το πλήθος τους μπορεί να είναι από μηδενικός (αν θυμάμαι καλά) ως 32. ΥΓ: Να μεταφερθεί το topic στο Απορίες ΜΑTLAB Title: Απ: Matlab βοηθεια Post by: aliakmwn on December 31, 2005, 00:09:26 am Οι οδηγιες του Matlab του Μαργαρη υπαρχουν εδω:
http://genesis.ee.auth.gr/margaris/greek/courses/laboratory/MATLAB.pdf Title: Απ: Matlab βοηθεια Post by: kaplanis on December 31, 2005, 02:40:21 am Οκ μπορω να πω οτι ειμαι μερικως καλυμενος
Title: Απ: Matlab βοηθεια Post by: kaplanis on December 31, 2005, 03:14:33 am Kαι γιατι ειμαι μερικως καλυμενος...
Το βιβλιο του μαργαρη δεν κανει σχεδον καθολου αναφορα στη δημιουργια συναρτησεων τυπου οτιΘελω(χ,ψ). Πανω κατω ειναι αυτο που ειπε ο Fugitive αλλα και παλι κατι δε παει καλα Δημιουργω ενα Μ-file και γραφω: function y=g(w); y = sqrt(w^2 + a*w^8) ; Στο command γραφω: a=10; w=0:0.1:300; y=g(w) και πατωντας εντερ παιρνω matrix is not square variable a not defined και αλλα τετοια καντονεζικα (n'joy)Αυτο που θελω ειναι να δηλωσω μια συναρτηση οτιΘελω(ω) η οποια θα δεχεται παραμετρους και να σχεδιασω το γραφημα της ως προς ω Title: Απ: Matlab βοηθεια Post by: Netgull on December 31, 2005, 04:48:28 am Όταν υψώνεις πίνακα σε δύναμη πρέπει να ειναι τετραγωνικός. Αν θες να υψώσεις το κάθε στοιχείο του (όπως θες τώρα) πρέπει να χρησιμοποιήσεις το ".^". Δηλαδή y = sqrt(w.^2 + a*w.^8) ;
Τώρα για το a, χωρίς να το έχω ψάξει, μάλλον οι μεταβλητές που χρησιμοποιείς μέσα στη συνάρτηση αν δεν είναι είσοδοι πρέπει να ορίζονται μέσα σε αυτή. Έχει να κάνει με το ότι όλες οι μεταβλητές σε μια συνάρτηση είναι τοπικές μεταβλητές. Title: Re: Matlab βοηθεια Post by: nad on December 31, 2005, 12:14:08 pm Δεν έχω μπροστά μου το matlab και δεν είμαι σίγουρη, αλλά νομίζω ότι για να δίνεις τιμές σε μεταβλητή από το command και όχι από το πρόγραμμα, πρέπει να την ορίσεις στο πρόγραμμα ως global. Δες λίγο το help. Το matlab έχει τέλειο help.
Title: Re: Matlab βοηθεια Post by: Aurelius on January 02, 2006, 02:25:39 am Παιδια και εμενα μια απορια για την συνθεση.
Ο Θεοχαρης λεει να κανουμε γραφημα αποσβεσης και να χρησιμοποιησουμε την inv(function). Οταν το κανω μου βγαζει μηνυμα οτι επειδη αντιστρεφεται εχει περισσοτερα μηδενικα απο πολους και γι αυτο δεν το βγαζει. Εν τω μεταξυ ειναι και καπως περιεργο, γιατι η αντιστροφη στον λογαριθμο ειναι ενα προσημο μειον. Τελςο παντων δεν βγαινει και δεν μπορω να το πολυψαξω γιατι ο υπολογιστης στην Μυτιληνη δεν φυσαει κιολας... Μπας και εχετε να προτεινετε κατι;;; Title: Απ: Matlab βοηθεια Post by: kaplanis on January 03, 2006, 19:17:11 pm Υπαρχει μια εντολη στο ματλαμπ που λεγεται φυσαει(χ)
Μετα θα πας στη Java και θα φτιαξεις ενα αντικειμενο της κλασης PCια που φυσανε =η κονσερβα που εχω στη Μυτιληνη Τοτε αν χρησιμοποιησεις τη μεθοδο η κονσερβα που εχω στη Μυτιληνη.φυσαει(); θα κανεις τον υπολογιστη σου να φυσαει ομως προσεχε να φορας παντα μπουφαν οταν τρεχεις το προγραμμα γιατι μπορει να σε κολλησει κανα ιο Title: Re: Matlab βοηθεια Post by: Aurelius on January 04, 2006, 14:50:08 pm Α ρε καπλανε, να φανταστω οτι το laptop exei μοντεμ γι αυτο δικτυωνεσαι....
:):):) Title: Απ: Matlab βοηθεια Post by: Cyberkat on February 22, 2006, 20:48:23 pm Υπάρχει καμία συνάρτηση του matlab που να μετατρέπει ένα τριώνυμο της μορφής ax^2+bx+1 σε αυτή την μοφή (1+cx)(1+dx)??
To help δεν βοήθησε... >:( Title: Απ: Matlab βοηθεια Post by: poly1 on February 22, 2006, 20:53:36 pm Ε τί? Παραγοντοποίηση είναι ...
η r = roots([a b c]); δε κάνει? r = [c d] Title: Απ: Matlab βοηθεια Post by: Cyberkat on February 22, 2006, 21:00:04 pm Η roots επιστρέφει αυτήν την μορφή (x-c)(x-d).
Θα το κάνω χειροκίνητα :D έλεγα μήπως υπήρχε..... Title: Απ: Matlab βοηθεια Post by: Axel on February 22, 2006, 21:01:40 pm Το simplify υποτιθεται οτι κανει κατι τετοιο. Στο παραδειγμα που εχει το Help μου δουλεψε μια χαρα.
>> syms a b c >> simplify(exp(c*log(sqrt(a+b)))) ans = (a+b)^(1/2*c) Το δοκιμασα με αυτο που εδωσες εσυ ως >> syms a b x >> simplify(a*x^2+b*x+1) ans = a*x^2+b*x+1 αλλα δεν το κανει. Γιατι δεν ξερω. Κοιταξε και την εντολη simple. Μπορει να κανει κατι. Αμα το βρεις κανε και ενα post. :) Title: Απ: Matlab βοηθεια Post by: Zarathoustra on February 22, 2006, 22:18:46 pm Η ninja νομίζω έδωσε την απάντηση.Και με λίγο προγραμματισμό στο Matlab,μπορεί κανείς να κατασκευάσει την συνάρτηση που θα κάνει αυτό ακριβώς που θέλει η Cyberkat, έτσι ώστε οι υπολογισμοί να γίνονται αυτοματοποιημένα.
Το simplify κάνει απλοποιήσεις.Δεν μπορείς να απλοποιήσεις άλλο ένα τριώνυμο(πλήν ελαχίστων ειδικών περιπτώσεων).Για παραγοντοποιήσεις το symbolic toolbox έχει άλλες εντολές,αλλά δεν νομίζω ότι θα βοηθούσαν σε αυτήν την περίπτωση. Γενικά το matlab δεν είναι κατάλληλο για συμβολικούς υπολογισμούς.Αυτό είναι ειδικότητα του Mathematica(και παρόμοιων πακέτων). Title: Re: Matlab βοηθεια Post by: fugiFOX on February 23, 2006, 12:59:21 pm Δουλευεις με αριθμους ή με συμβολικές παραστάσεις;
Title: Απ: Matlab βοηθεια Post by: Cyberkat on February 23, 2006, 13:10:41 pm Με αριθμούς. Τελικά το έκανα με απλό παραδοσιακό προγραμματισμό ;)
Ήμουν σίγουργη ότι υπήρχε αυτή η συνάρτηση γι' αυτό ρώτησα. Ίσως να κάνω και λάθος... Ευχαριστώ για την βοήθεια πάντως :) Title: Re: Matlab βοηθεια Post by: fugiFOX on February 23, 2006, 13:13:29 pm Πρέπει να υπάρχει από όσο θυμάμαι, αλλά πρέπει να παίξει λίγο με τα arguments.
Τέσπα, παραδοσιακοί τρόποι rulez! Title: Απ: Matlab βοηθεια Post by: Axel on February 27, 2006, 16:32:41 pm Ξερει κανεις πως μπορω να καθορισω το χρωμα της γραφικης παραστασης στο Matlab οταν σχεδιαζω το margin ενος συστηματος; Η διαφορετικα αν μπορω να καθορισω το χρωμα μιας γραφικης παραστασης χωρις να βαλω plot(x,t,'r'). Κατι πιο γενικο. Σαν setcolor ας πουμε. Δεν βρισκω κατι.
Title: Απ: Matlab βοηθεια Post by: Cyberkat on February 27, 2006, 16:38:29 pm Δεν ξέρω αν θα βοηθήσει το παρακάτω αλλά τέσπα...
plot(x,t,'Color','red') Αν βάλεις στο help "linespec" θα σου βγάλει και άλλα χρήσιμα, νομίζω ότι μπορείς να ορίσεις και νέο χρώμα πέρα από τα red, blue, κλπ με [R G B]. Title: Απ: Matlab βοηθεια Post by: Axel on February 27, 2006, 16:44:51 pm Δε θελω να αλλαξω το χρωμα στο plot, αλλα στη συναρτηση margin που δινει τα περιθωρια φασης και κερδους ενος συστηματος. Κοιταξα τα linespec και line, αλλα δεν καταφερα κατι. Το να το αλλαζω με το χερι αφου σχεδιαστει η γραφικη παρασταση δεν ειναι οτι γρηγοροτερο...
Title: Απ: Matlab βοηθεια Post by: Netgull on February 27, 2006, 17:04:16 pm Δεν κατάλαβα ακριβώς τι θες να κάνεις, αλλά μπορείς να πάρεις και ένα handle για τη γραφική παράσταση (νομίζω με h=plot(x,y)) και μετά να θέσεις το χρώμα για τα διάφορα αντικείμενα του γραφήματος με την set(h). Δεν θυμάμαι ακριβώς πως. Ψάξε στo help μήπως σε βοηθήσει.
Title: Απ: Matlab βοηθεια Post by: Axel on February 27, 2006, 17:24:19 pm Χεχ, το βρηκα! Thanks. =)
Λοιπον, εστω οτι εχουμε τη συναρτηση μεταφορας ανοιχτου βρογχου ενος συστηματος Fοl. Για να σχεδιασουμε τα περιθωρια φασης και κερδους του συστηματος αυτου χρησιμοποιουμε την εντολη margin(Fοl). Ομως η εντολη αυτη δεν δεχεται ως ορισμα το χρωμα της γραμμης οπως κανει η plot(x,y,'r'). Το παρακατω κανει κοκκινη τη γραμμη της γραφικης παραστασης. Λογικα θα δουλευει και με το plot. margin(Fol) set(findobj('Type','line'),'Color','r') Edit: Ενα μικρο 'bug'... Κανει ολες τις γραφικες παραστασεις που δημιουργηθηκαν στο χρωμα που οριζεις. Καπως θα γινεται να κανει μονο αυτη που θες. Με το handler πιθανοτητα που ειπε ο Netgull. Title: Re: Matlab βοηθεια Post by: fugiFOX on February 27, 2006, 19:32:32 pm Είχα φτιάξει ένα προγραμματάκι σαν κι αυτό που θέλεις.
Θα το ψάξω να το βρω αν δεν το βιάζεσαι άμεσα. Title: Απ: Matlab βοηθεια Post by: Axel on February 27, 2006, 22:55:27 pm Thanks fugitive, αλλα τελικα το εκανα με παπατζικο τροπο με πολλαπλα runs του προγραμματος. :)
Title: Απ: Matlab βοηθεια Post by: Axel on March 06, 2006, 14:24:47 pm Μια απορια ακομα...
Εχεις κανεις ιδεα πως γινεται αν βαλεις το matlab να σου ανοιξει μια εικονα και δεν βρει το αρχειο αυτο να μην πεταει error, αλλα να δινει τιμη σε καποια μεταβλητη? Title: Re: Matlab βοηθεια Post by: fugiFOX on March 06, 2006, 22:01:04 pm χμ, το error το πετάει από κάποιο exception που συμβαίνει.
Ο μόνος τρόπος που μου έρχεται στο μυαλό είναι να επέμβεις στον κώδικα της συγκεκριμένης συνάρτησης και να τροποποιήσεις εκείνο το σημείο όπου καλείται το exception αντικαθιστώντας το με μια εντολή αναθεσης τιμής σε μεταβλητή. Δεν είναι τόσο δύσκολο όσο ακούγεται. Αν γνωρίζεις σχετικά μέτριο προγραμματισμό σε ΜΑΤΛΑΒ θα καταλάβεις όλο τον κώδικα της συνάρτησης εκτός ίσως από τη χρήση των μεταβλητών varargin/out, για αυτό ρίξε πρώτα μια ματιά στο help για αυτές τις μεταβλητές Title: Απ: Matlab βοηθεια Post by: Zarathoustra on March 06, 2006, 22:35:44 pm @Axel:
To matlab είναι μια πλήρης γλώσσα προγραμματισμού και κάθε αξιοπρεπής γλώσσα σου παρέχει την δυνατότητα χειρισμού σφαλμάτων.Πιστεύω ότι αυτό που θέλεις να κάνεις γίνεται με χρήση block try-catch Στο help του Matlab υπάρχει κεφάλαιο που σου δείχνει πως ακριβώς γίνεται αυτό: Section : Programming Title : Error Handling Title: Απ: Matlab βοηθεια Post by: Axel on March 06, 2006, 22:58:44 pm Thanks Zarathoustra! Δεν ηξερα οτι το Matlab εχει try-catch. Δουλεψε μια χαρα αυτο που ηθελα σε συνδυασμο με την return. =)
Θα μπορουσε να γινει και αυτο που λες Fugitive, αλλα θα επρεπε να στελνω και τη συναρτηση για την αναγνωση καθε φορα σε καποιον που θελει να δει το προγραμμα μου για να διαβασει αυτη το Matlab και οχι την ετοιμη. Title: Re: Matlab βοηθεια Post by: fugiFOX on March 06, 2006, 23:01:45 pm Δεν κατάλαβα τι θες να πεις,
αλλά αφού έγινε η δουλειά σου δεν χρειάζεται ;) Title: Re: Matlab βοηθεια Post by: nad on March 21, 2006, 00:52:00 am Να ρωτήσω κι εγώ κάτι; Έχουμε ένα πίνακα nxn, του οποίου τα στοιχεία είναι συνάρτηση μιας μεταβλητής. Πως θα βρω για ποιες τιμές της μεταβλητής μηδενίζεται η ορίζουσά του;
Θέλω αναλυτική λύση, γιατί βαριέμαι να ψάχνω... ;) Ευχαριστώ!!! :) Title: Re: Matlab βοηθεια Post by: ckck20 on March 21, 2006, 02:07:12 am Για πίνακα 2χ2:
syms x a=[x,2;2,x]; solve(det(a)) Title: Re: Matlab βοηθεια Post by: fugiFOX on March 25, 2006, 13:45:15 pm α)τι εννοείς να λύσεις μια χιλιάρα φορές;
Με άλλους συντελεστές; β) γιατί είναι η προεπιλεγμένη μορφή μεφάνισης των αριθμών όταν δουλέυεις με syms. Ψάξε στο help έχει μια συνάρτηση που μεταρτέπει αυτή τη μορφή σε κανονικό αριθμό γ)αυτό δεν μπορώ να στο απαντήσω Title: Απ: Matlab βοηθεια Post by: Zarathoustra on March 25, 2006, 22:15:48 pm Αντί για solve('ar(1,1)=0','x') μπορείς να χρησιμοποιήσεις την παράσταση solve([char(ar(1,1)) '=0'],'x')
Βέβαια αν σε ενδιαφέρουν μόνο οι εξισώσεις με δεύτερο μέλος '=0' αρκεί η solve(ar(1,1),'x'). Υποθέτω ότι ο ar είναι πίνακας με sym object Title: Απ: Matlab βοηθεια Post by: Zarathoustra on March 25, 2006, 22:55:20 pm Το βρίσκω πιθανό να υπάρχει,αλλά δεν μπόρεσα να βρώ κάτι από το documentation.
Εγώ προτείνω να κατασκευάσεις εσύ την συνάρτηση δεν είναι πολύ δύσκολο. Τις ρίζες μπορείς να τις βρείς με την roots.Μετά πρέπει να απορρίψεις τις μιγαδικές (π.χ με την isreal (προφανώς πρόκειται για σιωνιστική συνομωσία)) και να βρείς το πρόσημο της συνάρτησης ανάμεσα στις ρίζες(υπολογίζοντας π.χ μια τιμή στον αριθμητικό μέσο των ριζών). Title: Re: Matlab βοηθεια Post by: fugiFOX on March 26, 2006, 01:54:20 am από όσο θυμάμαι δε νομίζω να υπάρχει συνάρτηση για πολυωνυμικές ανισότητες.
Οπότε... Title: Re: Matlab βοηθεια Post by: dimvam on April 03, 2006, 14:12:17 pm Είχα το εξής πρόβλημα με το Ματλαβ. Μόλις το άνοιγα, έκλεινε το παράθυρο από μόνο του. Το έκανα ξάνα εγκατάσταση όπως μου είπατε αλλά πάλι το ίδιο πρόβλημα. Πως παίρνω Licence Number; Μήπως παίζει ρόλο ότι άφησα κενό το πεδίο αυτό κατά την εγκατάσταση;
Θα εκτιμήσω ιδιαιτέρως γρήγορες απάντήσεις, σε λίγη ώρα έχω εργαστήριο κυκλωμάτων! Title: Απ: Matlab βοηθεια Post by: JAs0n-X on April 03, 2006, 20:18:35 pm Ποια εκδοση matlab εχεις? αν εχεις την 7 στειλε μου ενα πμ γιατι εδω ειμαστε οφφ τοπικ! :P ;D
Title: Re: Matlab βοηθεια Post by: NetBuster on April 03, 2006, 20:24:49 pm Είχα το εξής πρόβλημα με το Ματλαβ. Μόλις το άνοιγα, έκλεινε το παράθυρο από μόνο του. Το έκανα ξάνα εγκατάσταση όπως μου είπατε αλλά πάλι το ίδιο πρόβλημα. Πως παίρνω Licence Number; Μήπως παίζει ρόλο ότι άφησα κενό το πεδίο αυτό κατά την εγκατάσταση; Και εγω το ιδιο προβλημα εχω συν το οτι δεν εγκαθισταται το 2ο CD..Θα εκτιμήσω ιδιαιτέρως γρήγορες απάντήσεις, σε λίγη ώρα έχω εργαστήριο κυκλωμάτων! Title: Απ: Matlab βοηθεια Post by: Andrikos on April 04, 2006, 00:17:26 am Βαλτε Mathematica... oooooeeeeeeooooo
Title: Re: Matlab βοηθεια Post by: elisabeth on April 05, 2006, 13:59:39 pm να ρωτησω και εγω το ασχετο στα του matlab κατι?
υπάρχει συνάρτηση μοναδιαίου βήματος? θέλω να φτιάξω μια συναρτηση/παλμο: x(t)=u(t+t0)-u(t-to) Title: Re: Matlab βοηθεια Post by: fugiFOX on April 05, 2006, 17:53:20 pm οχι, αλλά μπορείς να δεις την συμπεριφορά ενός συστήματος σε βηματική είσοδο.
Ποια είναι αυτή; Ε, πολύ απλά step() Ψάξε στο help λέει τα πάντα Title: Re: Matlab βοηθεια Post by: elisabeth on April 07, 2006, 17:17:51 pm οχι, αλλά μπορείς να δεις την συμπεριφορά ενός συστήματος σε βηματική είσοδο. αλπα θέλω να σχεδιάσω ένα ιδανικο χαμηλοπερατο φίλτρο απο ω -π/4 ως π/4Ποια είναι αυτή; Ε, πολύ απλά step() Ψάξε στο help λέει τα πάντα Title: Απ: Matlab βοηθεια Post by: JAs0n-X on April 07, 2006, 17:21:39 pm υπαρχει η stepfun(T,T0)
T ειναι το διανυσμα του οριζοντιου αξονα. Τ0 που θες να ειναι η βηματικη! οποτε T=linspace(0,1,300); id=stepfun(T,0)-stepfun(T,Ω) Title: Re: Matlab βοηθεια Post by: nad on April 18, 2006, 10:26:37 am Και επανέρχομαι με μία ακόμη απορία...
Λοιπόν, έχουμε ένα ομογενές σύστημα(έτσι δε λέγεται αυτό της μορφής P*x=0 ;) Λοιπόν, πως γίνεται το ματλάμπι να μας δώσει τη λύση παραμετρικά; Δλδ, αν έχουμε πίνακα nxn να μας δώσει τα n-1 διανύσματα(x) σε συνάρτηση του ενός; Vielen Dank!!!!! Title: Re: Matlab βοηθεια Post by: fugiFOX on April 18, 2006, 11:16:22 am Μάλλον θα χρειαστεί να δουλέψεις με το symbolic toolbox.
Ψάξε εκεί αν υπάρχει κάτι για επίλυση τέτοιων συστημάτων. Εάν όχι, μην ξεχνάς ότι μπορείς πάντα να το φτιάξεις εσύ ;) Title: Re: Matlab βοηθεια Post by: nad on April 29, 2006, 10:45:56 am Παιδιά γειά σας!
Έχω ένα πρόβλημα (ένας φίλος μου δηλαδή) και ζητώ την βοήθειά σας... Έχει ένα σύστημα διαφορικών εξισώσεων να λύσει το οποίο είναι σε μητρωϊκή μορφή, δηλαδή έχει τη μορφή: ΑΧ''+BΧ'+CΧ=F, A,B,C πίνακες σταθερών όρων ΝχΝ και F πίνακας συναρτήσεων του χρόνου Νχ1. Όπου Χ είναι οι πίνακες-στήλες (Νχ1) των αγνώστων. Πως θα το λύσω;;;;;;;;;;;;;;;;;;;;;;;;;;; Ευχαριστώ!!! Title: Re: Matlab βοηθεια Post by: fugiFOX on April 29, 2006, 15:08:24 pm Εάν με τον ' εννοείς παράγωγο τότε ψάξε στο help για
differential equations κάπου πρέπει να είχε πάρει το μάτι μου για επίλυση συστημάτων δευτέρου βαθμού, αλλά δυστυχώς δεν θυμάμαι περισσότερες λεπτομέρειες Title: Re: Matlab βοηθεια Post by: tolos on July 19, 2007, 21:11:35 pm Απορια SOS:
Ξερει κανεις πως γινεται να δημιουργησουμε ενα νευρωνικο δικτυο το οποιο δεν θα πληρως διασυνδεδεμενο; Title: Re: Matlab βοηθεια Post by: dimvam on December 09, 2007, 01:05:01 am Θέλω να ρωτήσω κάτι, πιστεύω απλό για τους πιο πολλούς, αλλά δύσκολο για μένα τον άσχετο.
Θέλω να σχεδιάσω μία συνάρτηση y ως προς x ή οποία όμως αλλάζει μορφή για κάποια διαστήματα. Δηλαδή π.χ. για 1<χ<2 είναι χ^2+7, ενώ για 2<=χ<6 είναι χ^2 + 4χ -12. (Κλασικά προβλήματα, δηλαδή, γραφικής συνέλιξης σημάτων). Από το help δεν έβγαλα άκρη, έχει τόσα πολλά που δεν ξέρω που να ψάξω. Ευχαριστώ! Title: Re: Matlab βοηθεια Post by: fugiFOX on December 09, 2007, 11:59:22 am Μπορείς να το κάνεις με πολλούς τρόπους,
διάλεξε εσύ ποιος σε βολεύει περισσότερο. 1) Με for loops και if blocks Καταλαβαίνεις νομίζω τι εννοώ 2) Φτιάχνεις ξεχωριστά τα διανύσματα των x και για καθε ένα από τα διαστήματα π.χ. x1=[1:0.1:2], y1=x1.^2+7 x2=..., y2=... και κατόπιν τα ενώνεις σε ένα x,y x=[x1,x2,...xn], y=[y1,y2,...yn] 3) Κατασκευάζεις και πλοτάρεις δλδ κάθε φορά δημιουργείς το διάνυσμα x,y του διανύσματος που σε ενδιαφέρει το πλοτάρεις και συνεχίζεις. Αυτός ο τρόπος είναι ο καλύτερος από άποψη διαχείρισης μνήμης. Ο κώδικάς σου θα είναι κάπως έτσι: x=[1:0.1:2] y=x.^2+7 plot(x,y) x=[2:0.1:6] y=... hold on plot(x,y) hold off Για περισσότερες λεπτομέρεις σχετικά με τις συναρτήσεις που χρησιμοποίησα παραπάνω, μπορείς να ανατρέξεις στο help. Τα λέει αναλυτικότατα Title: Re: Matlab βοηθεια Post by: mendelita on January 07, 2008, 14:46:13 pm Φτιάχνω μια συνάρτηση, για να την χρησιμοποιήσω σε ode συγκεκριμένα: function dx=mplampla(t,x) Ορίζω το διάνυσμα εξόδου: dx=[-x(1) ; x(1)]; ← Μετά κάνω κάποια άλλα πράγματα (χρησιμοποιώ την ode, plot, κτλ), πάω να το τρέξω και μου βγάζει error στη γραμμή με το βελάκι. Το δοκίμασα και με άλλους τρόπους που μπορείς να ορίσεις πίνακες αλλά πάλι μου βγάζει λάθος.. Γιατί? :'( Title: Re: Matlab βοηθεια Post by: Aurelius on January 07, 2008, 14:55:33 pm Ε τι λαθος βγαζει???
Title: Re: Matlab βοηθεια Post by: mendelita on January 07, 2008, 14:57:41 pm Δε λέει. Βγάζει μόνο αυτό: Error in ==> odeA at 2 dx=[-x(1);x(1)]; :???: Title: Re: Matlab βοηθεια Post by: Aurelius on January 07, 2008, 15:00:47 pm Μηπως πρεπει να το κανεις cell array??? Το x τι ειναι???
Title: Re: Matlab βοηθεια Post by: mendelita on January 07, 2008, 15:05:01 pm Μηπως πρεπει να το κανεις cell array??? Το x τι ειναι??? Εεεε τι εννοείς cell array? ^redface^ Για το x κι εγώ το σκέφτηκα, διάνυσμα είναι. Αλλά σε όλα τα παραδείγματα του Matlab έτσι το έχει, άσε που το x είναι που ψάχνω, δεν μπορώ να το ορίσω... :P Σίγουρα κάνω καμιά χοντρή βλακεία και δεν τη βλέπω τώρα... ^banghead^ ^seestars^ Title: Re: Matlab βοηθεια Post by: Aurelius on January 07, 2008, 15:06:31 pm Μισο να τα δω λιγο γιατι δεν ειχα ασχοληθει με διανυσματα στο MATLAB.
Title: Re: Matlab βοηθεια Post by: mendelita on January 07, 2008, 16:12:50 pm Δούλεψε!! ^hello^ Ευχαριστώ πολύ Aurelius!! :) Σε έχω ευχαριστήσει παντού.. :D Title: Re: Matlab βοηθεια Post by: Aurelius on January 07, 2008, 16:13:37 pm Τπτ ...
Title: Re: Matlab βοηθεια Post by: mendelita on January 09, 2008, 00:55:26 am Πάλι εγώ.. :P Ξέρεις κανείς πώς μπορώ να βάλω διαγράμμιση σε μια περιοχή ενός διαγράμματος? Για να απεικονίσω για π.χ. την περιοχή |x| >= 2. Title: Re: Matlab βοηθεια Post by: Aurelius on January 09, 2008, 11:51:56 am Τι εννοεις διαγραμμιση???
Title: Re: Matlab βοηθεια Post by: mendelita on January 09, 2008, 12:33:32 pm Σκίαση, διαγώνιες γραμμές ή κάτι τέτοιο.. Δηλαδή για το |χ|>=2 φτιάχνω τις ευθείες χ=2 και χ=-2 αλλά πως θα δείξω ότι εννοώ το χ>2 και χ<-2? Title: Re: Matlab βοηθεια Post by: auroraTM on January 09, 2008, 12:49:54 pm Παιδια έχω ένα μικρο χαζό προβλημα
t=0:0.001:0.5; x=exp(-2*t)*20*cos(100*pi*t) ??? Error using ==> mtimes Inner matrix dimensions must agree. Tι φταιει ??? :???: Ευχαριστώ προκαταβολικά Title: Re: Matlab βοηθεια Post by: arianos on January 09, 2008, 12:54:50 pm γραψε αυτο:
x=exp(-2*t)*20.*cos(100*pi*t) αλλιώς ειναι σα να προσπαθει να πολλαπλασιάζει πίνακα 1*Ν με 1*Ν .. Title: Re: Matlab βοηθεια Post by: auroraTM on January 09, 2008, 12:57:56 pm ΤΗΧ
:D :D Title: Re: Matlab βοηθεια Post by: arkas on March 28, 2008, 10:06:25 am Μπορεί να προτείνει κανεις τροπο με τον οποιο μπορει ενα διάνυσμα με πραγματικες τιμες ήδη δειγματολειπτημένες (αναλογικο σημα) να μετατραπεί σε πίνακα bits(mxn) ,όπου m=δειγματα και n=bits per sample (ψηφιακο σημα )?
Μετατροπη αναλογικου σε ψηφιακο δηλαδη με καποια μεθοδο κωδικοποιησης. Title: Re: Matlab βοηθεια Post by: Aurelius on March 28, 2008, 11:19:17 am Το αρχικο σημα(αναλογικο) εχει ποσα δειγματα?
Title: Re: Matlab βοηθεια Post by: arkas on March 28, 2008, 12:53:21 pm To αρχικό έχει ακριβως 88575 δειγματα (Σκεψου οτι ειναι αρχειο ηχου *.wav που διαρκει σχεδον 5'')
Title: Re: Matlab βοηθεια Post by: Krono on March 28, 2008, 13:44:08 pm Αυτό δεν είναι αναλογικό σήμα! Είναι ήδη δειγματοληπτημένο διακριτό σήμα. Τώρα για να γίνει ψηφιακό, θέλεις να το κάνεις κβάντιση; Δεν κατάλαβα για ποιό λόγο.
Υ.Γ. Κατά μια έννοια είναι ήδη ψηφιακό! Title: Re: Matlab βοηθεια Post by: Aurelius on March 28, 2008, 13:54:58 pm Προφανως και δεν ειναι στην πραγματικοτητα αναλογικο, απλα θελει να δειγματοληπτησει καποια απο αυτα τα δειγματα, που υποτιθεται οτι ειναι το αναλογικο σημα.
Title: Re: Matlab βοηθεια Post by: arkas on March 28, 2008, 15:27:50 pm Ναι οντως,λαθος διατυπωση.Το εψαξα λιγο,αν χρειαστει θα επανελθω.
Ευχαριστω παντως! Title: deleted Post by: BOBoMASTORAS on March 28, 2008, 16:00:39 pm deleted
Title: Ε ρε να... Post by: Nessa NetMonster on April 06, 2008, 17:22:04 pm Πριν λίγο ανακάλυψα έναν από τους λόγους (ίσως και το μοναδικό) που οι εργασίες στη γραφική μου έβγαζαν παράλογα αποτελέσματα...
Κάποιος εξυπνάκιας από αυτούς που φτιάχνανε το Matlab την είδε "κάπως" >:( και έκανε να μη μπορείς να αλλάξεις τη μεταβλητή της for μέσα στη for! ^banghead^ Τώρα άμα αρχίσω να βρίζω το σόι του θα φταίω; :angry4: Σε όλες τις γλώσσες προγραμματισμού που ξέρω, του έλεγες for το i από εδώ μέχρι εκεί με βήμα τάδε, και μπορούσες μετά μέσα στο βρόχο μέσα σε μια if πχ αν αυγά==μελάτα να του πεις i=τάδε+1 για να τερματιστεί η for μια ώρα αρχύτερα... εδώ όμως όταν ξαναπάει η εκτέλεση στη for, το i θα ξαναπάρει την τιμή που είχε+βήμα! Και μου αρέσει που σου βγάζει warning όταν αλλάζεις τη μεταβλητή, αλλά δε σου λέει ότι μετά θα χαθεί η τιμή που της έδωσες! Προσέχετε μην την πατήσετε κι εσείς... ::) Title: Re: Matlab βοηθεια Post by: Optima on May 20, 2008, 20:06:06 pm βασικά παιδιά μήπως ξέρετε πώς γίνεται η σύγκριση στο matlab? εννοώ το <= (μικρότερο ή ίσο)
ξερω στην περίπτωση της ισότητας υπάρχει το isequal αλλά όταν θέλω σε ένα if να έχω <= ή >= τί βαζω; και επίσης όταν θέλω μετά το ίφ να έχω δύο συνθήκες που πρέπει να ενωθούν με το λογικό AND , βάζω απλώς AND ? η αλήθεια είναι ότι το αναγνωρίζει γιατί μου το βγάζει με μωβ χρώμα, αλλά είναι σωστό; Title: Re: Matlab βοηθεια Post by: emmanuel on May 20, 2008, 20:15:01 pm βασικά παιδιά μήπως ξέρετε πώς γίνεται η σύγκριση στο matlab? εννοώ το <= (μικρότερο ή ίσο) ξερω στην περίπτωση της ισότητας υπάρχει το isequal αλλά όταν θέλω σε ένα if να έχω <= ή >= τί βαζω; χωρις να είναι η καλύτερη λύση,αλλά μια μπακάλικη, αυτό που είχα κάνει εγώ κάποτε είναι if F(i)<-40 F(i)=-40 Title: Re: Matlab βοηθεια Post by: kinezos on May 20, 2008, 20:16:35 pm Ισχύουν οι τελεστές ==, <=, >=, ~= και & αντί AND.
edit: Το ~= είναι το "not equal", γράψε "help ne" για λεπτομέρειες Title: Re: Matlab βοηθεια Post by: Optima on May 20, 2008, 20:28:00 pm thanx both of u! :)
και κάτι τελευταίο (γιατί έχω βαρεθεί 2 μέρες να διαβάζω τα απρόσωπα manuals ::)) σ'ενα m-file θέλω να ορίσω μια συνάρτηση πολλαπλού τύπου και γι αυτό χρησιμοποιώ if. στο τέλος βάζω ένα end απλώς και πάντα μου βγάζει ότι "the sentence is incomplete" τίς πταίει; :???: Title: Re: Matlab βοηθεια Post by: Γιώργος on May 20, 2008, 20:28:47 pm Το end της συνάρτησης το 'χεις βάλει;
Title: Re: Matlab βοηθεια Post by: Optima on May 20, 2008, 20:32:33 pm Το end της συνάρτησης το 'χεις βάλει; όχι..ευχαριστώ τώρα είναι εντάξει :)Title: Re: Matlab βοηθεια Post by: fugiFOX on May 21, 2008, 09:15:36 am βασικά παιδιά μήπως ξέρετε πώς γίνεται η σύγκριση στο matlab? εννοώ το <= (μικρότερο ή ίσο) ξερω στην περίπτωση της ισότητας υπάρχει το isequal αλλά όταν θέλω σε ένα if να έχω <= ή >= τί βαζω; και επίσης όταν θέλω μετά το ίφ να έχω δύο συνθήκες που πρέπει να ενωθούν με το λογικό AND , βάζω απλώς AND ? η αλήθεια είναι ότι το αναγνωρίζει γιατί μου το βγάζει με μωβ χρώμα, αλλά είναι σωστό; Απέφευγε τη χρήση if στις συγκρίσεις ανισότητας, γιατί καθυστερεί την εκτέλεση. Αντ'αυτού το matlab έχει ειδική συνάρτηση ind=find(A<=value) όπου A ο πίνακας των στοιχείων σου και value η τιμή με την οποία γίνεται η σύγκριση ενώ ind είναι οι δείκτες του πίνακα των στοιχείων για τα οποία ισχύει η ανισότητα Title: Re: Matlab βοηθεια Post by: Optima on May 29, 2008, 13:29:55 pm παιδιά μου βγάζει αυτό το μήνυμα:
error using ==> mtimes Inner matrix dimensions must agree καμμια ιδεα του τί ακριβώς συμβαίνει; :???: Title: Re: Matlab βοηθεια Post by: fugiFOX on May 29, 2008, 13:38:58 pm κλασσικό μήνυμα.
Πόσταρε τον κώδικα που προκαλεί το λάθος Title: Re: Matlab βοηθεια Post by: Optima on May 29, 2008, 14:06:24 pm %calculating the one-dimensioned minimum bispectrum
Sorry για την καθυστερηση, κατι παιζει με την συνδεση μου.. TO m-file μου: function d0 = min_bis(L) global m for m=-L:L d0=(1/pi)*(abs(sin(pi*m/L))) + (1-((abs(m))/L))*(cos(pi*m/L)) end if abs(m) >= L d0=0 end end και ο κωδικας στο command prompt: global m >> m=32; >> >> y=min_bis((0:.1:100)'); ??? Error using ==> mtimes Inner matrix dimensions must agree. Error in ==> min_bis at 8 d0=(1/pi)*(abs(sin(pi*m/L))) + (1-((abs(m))/L))*(cos(pi*m/L)) Title: Re: Matlab βοηθεια Post by: fugiFOX on May 29, 2008, 15:21:37 pm Λοιπόν το λάθος βρίσκεται εδώ.
K>> size((abs(sin(pi*m/L)))) ans = 1 1001 K>> size( (1-((abs(m))/L))) ans = 1 1001 K>> size((cos(pi*m/L))) ans = 1 1001 Όπως βλέπεις προσπαθείς να πολλαπλασιάσεις δύο πίνακες με διαστάσεις [1x1001]*[1x1001] κατι που προφανώς δεν γίνεται γιατί δεν ταιριάζουν οι διαστάσεις. Εάν θες πολλαπλασιασμό πινάκων θα πρέπει να το κάνεις [1x1001]*[1001χ1] με άλλα λόγια θες τον αναστροφο του τελευταίου, δηλαδή ο κώδικάς σου θα είναι d0=(1/pi)*(abs(sin(pi*m/L))) + (1-((abs(m))/L))*(cos(pi*m/L))' (πρόσεξε την απόστροφο στο τέλος της γραμμής). Υποπτεύομαι όμως ότι δεν θες πολλαπλασιασμό πινάκων αλλά στοιχείο με στοιχείο. Σε αυτή την περίπτωση θα αντικαταστήσεις το * με .* Title: Re: Matlab βοηθεια Post by: Optima on May 29, 2008, 16:00:53 pm Αυτο το Κ >> size(η συναρτηση) είναι έτσι σαν έκφραση γιατί εγώ όταν το βάζω στο command prompt:
K>>size(abs(sin(pi*m/L))) ??? K>>size(abs(sin(pi*m/L))) | Error: Missing variable or function. >> size(abs(sin(pi*m/L))) ans = 1 1 %>γιατι αυτο το αποτελεσμα? Πάντως όπως κ να χει καταλαβα τί λες -όντως στοιχείο με στοιχείο θέλω και βαζω το .* αναμεσα στους δυο τελευταιους ορους, αλλα αυτο που με προβληματιζει είναι ότι μου βγαζει μοναδιάιο πίνακα στο αποτελεσμα....αρα πάλι κάνω κάτι λάθος...δεν μπορει να ειναι ολα 1... :???: thanx παντως! :) Title: Re: Matlab βοηθεια Post by: fugiFOX on May 29, 2008, 16:32:27 pm Αυτο το Κ >> size(η συναρτηση) είναι έτσι σαν έκφραση γιατί εγώ όταν το βάζω στο command prompt: εγώ το έγραψα στη διάρκεια του debugging όπου ο πίνακας είναι ορισμένοςK>>size(abs(sin(pi*m/L))) ??? K>>size(abs(sin(pi*m/L))) | Error: Missing variable or function. >> size(abs(sin(pi*m/L))) για αυτό και το εμφανισε. Για να καταλάβεις τι εννοώ και το τι θες εσύ τελικά να κάνεις δες τη διαφορά μεταξύ των παρακάτω εντολών. >> a=[1 2 3] a = 1 2 3 >> b=[4 5 6] b = 4 5 6 >> a*b ??? Error using ==> mtimes Inner matrix dimensions must agree. >> a*b' ans = 32 >> a'*b ans = 4 5 6 8 10 12 12 15 18 >> a.*b ans = 4 10 18 Title: Re: Matlab βοηθεια Post by: Krono on June 01, 2008, 22:32:26 pm Βασικά το πρόβλημα δεν είναι στην παράσταση. Και εκεί υπάρχει πρόβλημα αλλά... Το for loop δεν λειτουργεί έτσι όπως είναι. Το L είναι διάνυσμα και δεν μπορεί να λειρουτγήσει! Ίσως και λέω ίσως, να υπήρχε μια πιθανότητα να λειτουργήσει αν το πρώτο στοιχείο του L δεν ήταν μηδέν, αφού το μέτρημα από -0 έως +0 προφανώς θα εκτελεστεί μόνο μια φορά. Επίσης το if με το διάνυσμα επίσης δε νομίζω ότι κάνει κάτι όταν συγκρίνεται αριθμός με διάνυσμα. Εκτός αν το matlab έχει αυτοματισμούς που δεν γνωρίζω.
Προσοχή με τα διανυσματα, καλύτερα απλά και ξεκάθαρα παρά τόσο δυσνόητα και περίπλοκα. Title: Re: Matlab βοηθεια Post by: Nessa NetMonster on June 02, 2008, 22:25:46 pm Στην τελευταία εργασία που έχουμε στη Γραφική με Η/Υ πρέπει να κάνουμε ένα figure με τρία subplots και να το εγγράψουμε σε ταινία avi. Με ποιον τρόπο θα κάνω να εγγραφεί στο frame ολόκληρο το figure, και όχι μόνο το subplot που επέλεξα τελευταία φορά;
Title: Re: Matlab βοηθεια Post by: Ianna on August 19, 2008, 23:02:00 pm Μία βοήθεια την χρειάζομαι κι εγώ!Γνωρίζει κανείς την steps() ??????Ψάχνω στην βοήθεια του ματλαμπ και ούτε αυτό δείχνει να την γνωρίζει :P Αν ναι θα ήμουν ευγνώμων....έχω κολλήσει εδω και μία ωρα............... :-\
Title: Απ: Matlab βοηθεια Post by: svistos on August 19, 2008, 23:56:33 pm Μάλλον ψαχνεις την step()
Title: Re: Matlab βοηθεια Post by: Ianna on August 20, 2008, 00:24:11 am Την steps() ψάχνω...είναι σε ένα πρόγραμμα και δεν μπορω να καταλαβω πως την χρησιμοποιεί και λειτουργεί αφου δεν υπάρχει καν στο ματλαμπ(βοήθεια).
Title: Re: Matlab βοηθεια Post by: nbourgis on August 20, 2008, 00:28:00 am Μπορει να την εχει φτιαξει καποιος και να την καλει μεσα στο κυριο προγραμμα. Καπου πρεπει να υπαρχει ενα αρχειο steps.m, αλλιως καληνυχτα. Title: Re: Matlab βοηθεια Post by: fugiFOX on August 21, 2008, 15:21:56 pm Ψάξε και στο το site ths mathworks έχει ένα section για
user defined συναρτήσεις Title: Re: Matlab βοηθεια Post by: iliana on September 03, 2008, 20:47:03 pm Παιδια help!
Εχω μια ερωτηση...θελω στη γραφικη παρασταση του plot, "να σχεδιαστει ο αξονας y αναποδα, δλδ να ξεκινα απο 0 και να πηγαινει προς τα κατω και να αυξανεται θετικα". Πως μπορω να το κανω?Βρηκα ενα τροπο να το κανω γραφικα, απο το plot browser στην επιλογη axes, που απλα τα κανει να φαινονται αναποδα για να ξεγελιεται το ματι,αλλα δεν μπορω να δουλεψω ετσι! Μπορει να ακουγεται ευκολο, αλλα δεν εχω καθολου χρονο και εχω κολλησει τωρα... Θελω να το ορισω απο την εντολη.Καμια βοηθεια?plzzzz! Edit: Ευρηκα...Τελικα αν εχεις νευρα δεν μπορεις να κανεις τιποτα σωστο.... >:( Title: Re: Matlab βοηθεια Post by: ikoufis on September 04, 2008, 07:04:47 am Pes kai se emas pws ginetai!Ti sxediazeis?Suntelesth anaklashs se grammh metaforas? :P
Title: Re: Matlab βοηθεια Post by: pmousoul on September 04, 2008, 18:14:52 pm Παίδες.. γιατί μπορεί να μου βγάζει την επιφάνεια μαύρη και δεν την χρωματίζει.. :-\ Title: Re: Matlab βοηθεια Post by: pmousoul on September 04, 2008, 18:27:52 pm Παίδες.. γιατί μπορεί να μου βγάζει την επιφάνεια μαύρη και δεν την χρωματίζει.. :-\ To βρήκα.. πολλά μηδενικά και μικρή επιφάνεια υποστήριξης... Title: Re: Matlab βοηθεια Post by: Γιώργος on September 04, 2008, 18:29:42 pm Παίδες.. γιατί μπορεί να μου βγάζει την επιφάνεια μαύρη και δεν την χρωματίζει.. :-\ Βάλε μικρότερο "βήμα" και θα δεις. ;) (πώς λέμε "βάλε Ultrex και θα δεις;" :P) Title: Re: Matlab βοηθεια Post by: pmousoul on September 04, 2008, 18:41:58 pm Κι εγώ που νόμιζα ότι είχα μεγάλο και συνεχώς το ελάττωνα για να δω φως... ::) Πάω να δοκιμάσω και επανέρχομαι! Σ' ευχαριστώ Γιώργο. :) Title: Re: Matlab βοηθεια Post by: pmousoul on September 04, 2008, 18:56:05 pm Μεγάλωσα το βήμα και έγινε καλύτερο.. αλλά η εφαρμογή είναι τέτοια που δεν με αφήνει να το μεγαλώσω πολύ.. Έχω τρία πεδία ορισμού.. [-90,90]x[-5,5]x[0,3]... :( Title: Re: Matlab βοηθεια Post by: mendelita on September 06, 2008, 14:56:34 pm Υπάρχει κάποια συνάρτηση που να κάνει time delay? Να καθυστερεί δηλαδή την εκτέλεση του κώδικα όσα δευτερόλεπτα θέλεις. Title: Re: Matlab βοηθεια Post by: pmousoul on September 06, 2008, 15:21:54 pm Υπάρχει κάποια συνάρτηση που να κάνει time delay? Να καθυστερεί δηλαδή την εκτέλεση του κώδικα όσα δευτερόλεπτα θέλεις. http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/ref/pause.html&http://www.google.gr/search?hl=el&q=matlab+pause&btnG=%CE%91%CE%BD%CE%B1%CE%B6%CE%AE%CF%84%CE%B7%CF%83%CE%B7+Google&meta= Title: Re: Matlab βοηθεια Post by: Netgull on September 06, 2008, 15:27:44 pm pause(sec)
Title: Re: Matlab βοηθεια Post by: mendelita on September 06, 2008, 15:30:22 pm Ωωωω ευχαριστώ πολύ και τους δύο!!! ^hello^ Το pause ήταν το μόνο που δεν έψαξα.. :P Επίσης, βρήκα και τα timer objects τα οποία είναι λίγο πολύπλοκα... Title: Re: Matlab βοηθεια Post by: mendelita on September 22, 2008, 23:06:50 pm Πώς μπορώ να απεικονίσω το φασματικό περιεχόμενο ενός σήματος συναρτήσει του χρόνου? Πρέπει να είναι πολύ απλό αλλά αυτή τη στιγμή έχω μπλοκάρει.. :( Title: Re: Matlab βοηθεια Post by: Γιώργος on September 22, 2008, 23:32:59 pm Φασματικό περιεχόμενο συναρτήσει του χρόνου; Αφού δεν δουλεύεις στο χρόνο. :S
Φασματικό περιεχόμενο δεν είναι το Χ(jω); Title: Re: Matlab βοηθεια Post by: mendelita on September 22, 2008, 23:36:53 pm Είναι ακουστικό σήμα και θέλω να δω ποιες συχνότητες περιέχει αλλά θέλω να τις δω στη σειρά που ακούγονται δηλαδή συναρτήσει του χρόνου.. Δεν γίνεται? Title: Re: Matlab βοηθεια Post by: Γιώργος on September 22, 2008, 23:42:16 pm Ahm.... μήπως βάση του "συστολή στο χρόνο είναι διαστολή στη συχνότητα" βγάλεις κάτι;
Δηλαδή οι μεγάλες συχνότητες ακούγονται πρώτες και ύστερα οι βραδύτερες; Το ποιες συχνότητες περιέχει βγαίνει από το fft του, σωστά; Εκεί που εμφανίζει "κορυφούλες", αν θυμάμαι καλά (αν όχι, διόρθωσέ με). Αυτές που ακούγονται πρώτες θα είναι I guess αυτές που έχουν υψηλή συχνότητα. Μπορεί να λέω και βλακείες. :-\ Title: Re: Matlab βοηθεια Post by: Γιώργος on September 22, 2008, 23:43:34 pm Επίσης - με ένα γρήγορο search - δες αυτό (http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=14951&objectType=file). (Δεν ξέρω αν αυτό θες πράγματι)
//edit: κι εδώ (http://cvsp.cs.ntua.gr/courses/patrec/OnlineSpeechDemos/speechDemo_2004_Part1.html) Title: Re: Matlab βοηθεια Post by: pmousoul on September 22, 2008, 23:44:41 pm Ahm.... μήπως βάση του "συστολή στο χρόνο είναι διαστολή στη συχνότητα" βγάλεις κάτι; Δηλαδή οι μεγάλες συχνότητες ακούγονται πρώτες και ύστερα οι βραδύτερες; Το ποιες συχνότητες περιέχει βγαίνει από το fft του, σωστά; Εκεί που εμφανίζει "κορυφούλες", αν θυμάμαι καλά (αν όχι, διόρθωσέ με). Αυτές που ακούγονται πρώτες θα είναι I guess αυτές που έχουν υψηλή συχνότητα. Μπορεί να λέω και βλακείες. :-\ Το συχνοτικό περιεχόμενο και η σειρά που ακούγονται (για πρώτη φορά ίσως!!) δεν έχουν καμία σχέση.. Title: Re: Matlab βοηθεια Post by: Krono on September 22, 2008, 23:47:47 pm Ahm.... μήπως βάση του "συστολή στο χρόνο είναι διαστολή στη συχνότητα" βγάλεις κάτι; Δηλαδή οι μεγάλες συχνότητες ακούγονται πρώτες και ύστερα οι βραδύτερες; Το ποιες συχνότητες περιέχει βγαίνει από το fft του, σωστά; Εκεί που εμφανίζει "κορυφούλες", αν θυμάμαι καλά (αν όχι, διόρθωσέ με). Αυτές που ακούγονται πρώτες θα είναι I guess αυτές που έχουν υψηλή συχνότητα. Μπορεί να λέω και βλακείες. :-\ Sorry που θα σου το πώ αλλά λάθος υποθέτεις! Δεν υπάρχει κανένας άμεσος τρόπος να δείς ποιές συχνότητες παίζουν πρώτες. Ο μόνος τρόπος είναι να δείς ποιές παίζουν, με φίλτρο να κόψεις μια και να τη γυρίσεις ξανά στο χρόνο για να δείς σε ποιό σημείο παίζει. Να φανταστώ οτι κάνετε την εργασία ΨΕΣ ή μάλλον την fast ΨΕΣ Project... xixixi Title: Re: Matlab βοηθεια Post by: Γιώργος on September 22, 2008, 23:51:03 pm Sorry που θα σου το πώ αλλά λάθος υποθέτεις! Να 'σαι καλά, κι αναρωτιόμουν! Αυτό είχα στο νου μου, αλλά για να ζητά κάτι τέτοιο η εκφώνηση.... μάλλον θα υπήρχε.Δεν υπάρχει κανένας άμεσος τρόπος να δείς ποιές συχνότητες παίζουν πρώτες. Με φίλτρα που λες, δηλαδή ένα πράγμα σαν "αντίστροφη επαλληλία" λες; :P Title: Re: Matlab βοηθεια Post by: pmousoul on September 22, 2008, 23:52:45 pm Εκτός εάν κόψεις τον ήχο σου σε κομμάτια ίσα με την μικρότερη συχνότητα (αντίστοιχη περίοδο) και με ένα loop ελέγχεις κάθε φορά το κάθε κομμάτι τι συχνότητες περιέχει.. Πρέπει να γίνεται κάπως αυτό.. αλλά.. Title: Re: Matlab βοηθεια Post by: mendelita on September 22, 2008, 23:59:39 pm Ο μόνος τρόπος είναι να δείς ποιές παίζουν, με φίλτρο να κόψεις μια και να τη γυρίσεις ξανά στο χρόνο για να δείς σε ποιό σημείο παίζει. Να φανταστώ οτι κάνετε την εργασία ΨΕΣ ή μάλλον την fast ΨΕΣ Project... xixixi Νιι.. ::) Απλά βαριέμαι να κάνω αυτή τη διαδικασία.. :P Πάντως Γιώργο το δεύτερο λινκ σου έχει πράγματα.. Αυτή η spectrogram κάτι πρέπει να κάνει. :) Title: Re: Matlab βοηθεια Post by: kinezos on September 23, 2008, 00:00:53 am Αν κατάλαβα καλά τι ζητάς, πρέπει να κόψεις το σήμα σε διαδοχικά τμήματα, και στη συνέχεια να εφαρμόσεις μετασχηματισμό Fourier σε κάθε ένα από αυτά. Αυτό στο matlab γίνεται αυτόματα με την εντολή specgram.
Title: Re: Matlab βοηθεια Post by: pmousoul on September 23, 2008, 00:03:20 am Αν κατάλαβα καλά τι ζητάς, πρέπει να κόψεις το σήμα σε διαδοχικά τμήματα, και στη συνέχεια να εφαρμόσεις μετασχηματισμό Fourier σε κάθε ένα από αυτά. Αυτό στο matlab γίνεται αυτόματα με την εντολή specgram. Yeap!!! ^hello^ Για να το λέει ο κινέζος πάει να πει πως είμαι σωστός.. και ας μην έχω ιδέα!!! 8) Την ψώνισα!!! :P Title: Re: Matlab βοηθεια Post by: mendelita on September 23, 2008, 00:04:55 am Ο μόνος τρόπος είναι να δείς ποιές παίζουν, με φίλτρο να κόψεις μια και να τη γυρίσεις ξανά στο χρόνο για να δείς σε ποιό σημείο παίζει. Να φανταστώ οτι κάνετε την εργασία ΨΕΣ ή μάλλον την fast ΨΕΣ Project... xixixi Νιι.. ::) Απλά βαριέμαι να κάνω αυτή τη διαδικασία.. :P Πάντως Γιώργο το δεύτερο λινκ σου έχει πράγματα.. Αυτή η spectrogram κάτι πρέπει να κάνει. :) :P Έχει γίνει πλέον spectrogram.. Title: Re: Matlab βοηθεια Post by: Netgull on September 23, 2008, 00:15:03 am Είναι ακουστικό σήμα και θέλω να δω ποιες συχνότητες περιέχει αλλά θέλω να τις δω στη σειρά που ακούγονται δηλαδή συναρτήσει του χρόνου.. Δεν γίνεται? Εάν πάρεις πεπερασμένο αριθμό δειγμάτων (DFT ουσιαστικά), στην πραγματικότητα υποθέτεις ότι πέρα από αυτό τον αριθμό δειγμάτων το σήμα σου επαναλαμβάνεται περιοδικά. Επίσης, η ελάχιστη ανάλυση (resolution) που μπορείς να έχεις στη συχνότητα είναι τόσο μεγαλύτερη όσο μεγαλύτερος είναι ο αριθμός των δειγμάτων σε ένα συγκεκριμένο χρονικό διάστημα. Τέλος, υποψιάζομαι, ότι όσο μεγαλύτερο είναι το χρονικό διάστημα στο οποίο κάνεις DFT, τόσο μικρότερες συχνότητες θα μπορείς να εντοπισεις αξιόπιστα. Πρακτικά τώρα μιλώντας, για να δεις τις συχνότητες με τη σειρά που εμφανίζονται, ουσιαστικά θα ορίσεις ένα πεπερασμένο χρονικό διάστημα και σε αυτό πάνω θα κάνεις FFT. Αυτό θα σου δώσει κάποιες συχνότητες. Μετά θα μετακινήσεις αυτό το χρονικό διάστημα κατά ένα δείγμα, και θα ξανακάνεις FFT. Ουσιαστικά δηλαδή θα φτιάξεις έναν "κυλιόμενο" FFT. Έχω αρκετό καιρό να ασχοληθώ με επεξεργασία σήματος, αλλά νομίζω η γενική ιδέα είναι αυτή. Κάποιος που τα έχει πιο πρόσφατα ας πει αν έχει κάποια άλλη ιδέα. εδιτ: Όσο έγραφα δόθηκε μια απάντηση που επιβεβαιώνει την παραπάνω προσέγγιση. Η specgram λοιπόν μάλλον κάνει αυτό που θες. Title: Re: Matlab βοηθεια Post by: pmousoul on September 23, 2008, 00:50:22 am Βρήκα κάτι.. σχετικό! http://www.visualizationsoftware.com/gram.html Title: Re: Matlab βοηθεια Post by: mendelita on September 23, 2008, 00:58:17 am Βρήκα κάτι.. σχετικό! http://www.visualizationsoftware.com/gram.html Είναι κορυφαίο!!!! Ευχαριστώ πολύυυ!! :) :) :) Title: Re: Matlab βοηθεια Post by: pmousoul on September 23, 2008, 00:59:28 am Βρήκα κάτι.. σχετικό! http://www.visualizationsoftware.com/gram.html Είναι κορυφαίο!!!! Ευχαριστώ πολύυυ!! :) :) :) My pleasure! ^hat^ ^yue^ Title: Re: Matlab βοηθεια Post by: (Stalin)^2 on September 23, 2008, 01:26:35 am Βρήκα κάτι.. σχετικό! http://www.visualizationsoftware.com/gram.html Το είδα και στη λίστα, πολύ καλό. Βέβαια εγώ άυριο δίνω μετρήσεις Ι και την Παρασκευή Τεχ.Μηχανική (που είναι πέρα για πέρα άσχετα και γτπ γενικώς, αλλά τέσπα...) Title: Re: Matlab βοηθεια Post by: pmousoul on September 23, 2008, 01:27:33 am Βρήκα κάτι.. σχετικό! http://www.visualizationsoftware.com/gram.html Το είδα και στη λίστα, πολύ καλό. Βέβαια εγώ άυριο δίνω μετρήσεις Ι και την Παρασκευή Τεχ.Μηχανική (που είναι πέρα για πέρα άσχετα και γτπ γενικώς, αλλά τέσπα...) Άσε.. και 'γω δίνω σε λίγες ώρες ΕΕΤ Ι υποτίθεται!! ;D Title: Re: Matlab βοηθεια Post by: (Stalin)^2 on September 23, 2008, 01:30:40 am Βρήκα κάτι.. σχετικό! http://www.visualizationsoftware.com/gram.html Το είδα και στη λίστα, πολύ καλό. Βέβαια εγώ άυριο δίνω μετρήσεις Ι και την Παρασκευή Τεχ.Μηχανική (που είναι πέρα για πέρα άσχετα και γτπ γενικώς, αλλά τέσπα...) Άσε.. και 'γω δίνω σε λίγες ώρες ΕΕΤ Ι υποτίθεται!! ;D Όντως!! ;D Άντε καλή τύχη..Ας είναι ο Παπαγ. σε καλή μέρα..γιατί τελευταία οι ενεργειακές έγιναν αρκετά απαιτητικές... :-X Title: Re: Matlab βοηθεια Post by: pmousoul on September 23, 2008, 01:32:05 am Βρήκα κάτι.. σχετικό! http://www.visualizationsoftware.com/gram.html Το είδα και στη λίστα, πολύ καλό. Βέβαια εγώ άυριο δίνω μετρήσεις Ι και την Παρασκευή Τεχ.Μηχανική (που είναι πέρα για πέρα άσχετα και γτπ γενικώς, αλλά τέσπα...) Άσε.. και 'γω δίνω σε λίγες ώρες ΕΕΤ Ι υποτίθεται!! ;D Όντως!! ;D Άντε καλή τύχη..Ας είναι ο Παπαγ. σε καλή μέρα..γιατί τελευταία οι ενεργειακές έγιναν αρκετά απαιτητικές... :-X Να 'σαι καλά.. :) Υ.Γ. : Πολύ σπαμάραμε πάλι.. ας μας συγχωρέσουν οι μοδεράτορες! ^hat^ Και ας μας διαγράψουν.. :) Title: Re: Matlab βοηθεια Post by: Matzika on October 20, 2008, 00:03:14 am παιδια μια ερώτηση!ξερει κανεις πως μπορούμε απο ενα αρχειο που έχουμε εισάγει στο matlab να εξαγουμε ένα συγκεκριμένο στοιχείο?
π.χ. αν το αρχείο έχει μεσα ταχύτητα,επιτάχυνση και χρόνο εγώ να εξάγω το χρόνο.... ας βοηθήσει κάποιος please....! :( Title: Re: Matlab βοηθεια Post by: Verminoz on October 20, 2008, 00:08:32 am Όταν φορτώνεις αρχεία στο matlab με την εντολή load, υπό την προϋπόθεση ότι είναι σε σωστό φορμά, δηλαδή οι αριθμοί να χωρίζονται με κενά ή/και με γραμμές, τότε οι τιμές φορτώνονται σε πίνακα.
Πχ. αν το αρχείο σου έχει το εξής φορμά Ταχυτητα επιτάχυνση χρόνος 5 6 3 55 3 34 4 34 23 κοκ ... ... ν γραμμές Εδιτ: Το matlab πάντως έχει και wizard με το οποίο φορτώνεις μόνο αυτό που θές κατευθείαν από το αρχείο στη μεταβλητή που θες από το File -> Import Data φορτώνεις το αρχείο load file.dat; και δημιουργείται πίνακας file διαστάσεων [vx3] Στη συνέχεια εξάγεις τα δεδομένα όπως συνηθίζεται στο matlab. Πχ για τον χρόνο της γραμμής κ file(κ,3) ή για όλους τους χρόνους file(:,3) Ελπίζω να είναι αυτό που ήθελες... :-\ Title: Re: Matlab βοηθεια Post by: Matzika on October 20, 2008, 00:14:43 am οκ...ευχαριστώ για τη γρήγορη απαντηση!
κατι όμως πιο συγκεκριμένο...εγώ θέλω απο κείμενο να αποσπάσω το συγκεκριμένο αριθμό (π.χ. χρόνο)... Εχει δλδ κείμενο 3 σειρών και κάπου μεσα λέει οτι t=2...αυτό πως το κάνω??? Title: Re: Matlab βοηθεια Post by: Verminoz on October 20, 2008, 00:24:19 am Θέλεις δηλαδή να του δίνεις ένα κειμενάκι και να εξάγει τους αριθμούς από μέσα. Και αν κατάλαβα καλά θέλεις η διαδικασία αυτή να γίνεται μέσα σε ένα script αυτοματοποιημένα και όχι χειροκίνητα?
Title: Re: Matlab βοηθεια Post by: Matzika on October 20, 2008, 00:25:02 am ναι ακριβως!!!
Title: Re: Matlab βοηθεια Post by: Verminoz on October 20, 2008, 00:58:05 am Με προβλημάτισες με αυτό και κοίταζα λίγο τις συναρτήσεις του matlab και το συμπέρασμα που έβγαλα είναι ότι αυτό που θες είναι αρκετά δύσκολο αν το κείμενο μέσα στο αρχείο είναι τυχαίο. Υπάρχουν πολλοί και εύκολοι τρόποι για να εξάγεις αριθμούς από κείμενο με συγκεκριμένο φορμά αλλά όχι το αντίστροφο...
Ο πιο εφικτός τρόπος που μπορώ να σκεφτώ είναι να ανοίξεις το αρχείο και να διαβάζεις έναν έναν τους χαρακτήρες του μέχρι να συναντήσεις το t πχ και στη συνέχεια να διαβάζεις τον αριθμό. Η συναρτήσεις για να γίνει αυτό είναι fopen,fread,fclose και συναφείς αλλά αν θέλεις να δουλέψει γενικά και για οποιοδήποτε κείμενο είναι πολύ δύσκολο. Αν ξέρει κανένας καλύτερο τρόπο... Title: Re: Matlab βοηθεια Post by: pmousoul on October 20, 2008, 01:04:32 am Μπορεί να ελέγχει εάν οι χαρακτήρες που διαβάζει είναι αριθμοί (εύρος κωδικών ASCII) και όταν συναντά κάποιον που να είναι στο διάστημα των αριθμών να τον τυπώνει.. εάν διαβάζει έναν αριθμό και ο επόμενος χαρακτήρας δεν είναι αριθμός να αφήνει διάστημα.. κάτι τέτοιο.. :) Title: Re: Matlab βοηθεια Post by: pmousoul on October 20, 2008, 01:09:53 am Βρήκα κάτι.. http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=17770&objectType=file Title: Re: Matlab βοηθεια Post by: Optima on February 02, 2009, 16:31:01 pm Παιδια να σας ρωτησω κατι:
έχω δημιουργήσει ενα vector με 601 στήλες με συγκεκριμένες τιμές μέσα με την εντολή linspace. Η εντολή αυτή όμως, επιστρέφει σα μεταβλητή δηλαδη w= linspace(a,b,n) εγω θελω όμως αυτές τις τιμές να τις βάλω μετά σε ένα for loop και να γινουν δεικτες για εναν πινακα. for k=1:601 frequencies(k)=w; end ετσι δε γινεται προφανως, δεν εχουν ιδιες διαστασεις - πως θα το κανω καθε τιμη στηλης της μεταβλητης w να παει στον πινακα k? παιζει να ναι πολυ ευκολο, τωρα κολλησα λιγο Title: Re: Matlab βοηθεια Post by: nbourgis on February 02, 2009, 16:51:23 pm Προφανως οι δεικτες σου πρεπει να ειναι ακεραιοι >= 1
Αν καταλαβαινω καλα... εχεις συχνοτητες μεσα στο vector σου Αρα δεν θες φορ λουπ αλλα frequencies=linspace(starting frequency,ending frequency,number of discrete frequencies); Title: Re: Matlab βοηθεια Post by: Optima on February 02, 2009, 17:24:21 pm ναι, αυτο που λες ειναι το w που εγραψα παραπανω, a=starting frequency, b=ending frequenct, n ενδιαμεσα βηματα
Βασικα, χρειαζομουν μετα ενα loop για 601 φορες με βημα τη διαφορα των τιμων που προκυπτουν απο τις συχνοτητες(επειδη τα νουμερα ειναι δυσκολα) - ενταξει τελικα ετρεξα μια φορα το lispace, ειδα τα αποτελεσματα που μου βγαλε και το βαλα χειροκινητα.... απλως ελεγα μηπως γινοταν καπως αλλιως μπορει κ να μην το εξηγω καλα ειναι αληθεια, θενκς παντως! Title: Re: Matlab βοηθεια Post by: fugiFOX on February 05, 2009, 12:37:46 pm Βασικα, χρειαζομουν μετα ενα loop για 601 φορες με βημα τη διαφορα των τιμων που προκυπτουν απο τις συχνοτητες(επειδη τα νουμερα ειναι δυσκολα) for i=1:length(yourArray) frequencies(i,1:length(w))=w; end Title: Re: Matlab βοηθεια Post by: Optima on March 08, 2009, 14:05:05 pm παιδιά έχω δυό vectors 1x201, έστω Χ2 και DTFT3 που αντιπροσωπεύουν μετασχηματισμούς Fourier και θέλω το μέσο τετραγωνικό σφάλμα. Κανονικά δεν πρέπει να κάνω αυτό:
sqerror=(X2-DTFT).^2) meansqerror=mean(sqerror) Πού είναι το λάθος;Μου βγάζει Attempt to execute SCRIPT DTFT as a function .. Title: Re: Matlab βοηθεια Post by: mendelita on March 08, 2009, 14:10:31 pm Καταρχήν, αν ο κώδικας που βάζεις στο matlab είναι αυτός που έγραψες εδώ, σου λείπει μια παρένθεση στην πρώτη γραμμή και επίσης γράφεις DTFT ενώ πριν λες για DTFT3... Title: Re: Matlab βοηθεια Post by: nbourgis on March 08, 2009, 14:14:03 pm Εχεις ονομασει το m file DTFT? kARA lOl Title: Re: Matlab βοηθεια Post by: Optima on March 08, 2009, 14:29:54 pm αυτο το 3 ηταν η διαφορα - οντως δεν πρεπει να δινω παρομοια ονοματα στο mfile να μετα μου ξεφευγουν στο τσεκαρισμα!θενκς
Title: Re: Matlab βοηθεια Post by: stefos on March 23, 2009, 21:10:02 pm Παιδιά, sorry αν η ερώτηση μου είναι χαζή αλλά μήπως υπάρχει καμια συνάρτηση υπολογισμού ακροτάτων ή μόνο έμμεσα υπολογίζονται;
Title: Re: Matlab βοηθεια Post by: fugiFOX on March 26, 2009, 14:56:11 pm Το θες αριθμητικά ή συμβολικά;
Title: Re: Matlab βοηθεια Post by: Nessa NetMonster on March 29, 2009, 19:46:24 pm Πώς υπολογίζουμε το συνολικό μέγεθος ενός πίνακα σε bits; Ειδικά αν είναι cell array :-[
Title: Re: Matlab βοηθεια Post by: Aurelius on March 29, 2009, 20:31:00 pm Εχεις την μεταβλητη σου a.
Γραφεις b = whos('a') ; Μετα, με b.bytes σου βγαζει τον αριθμο των bytes, αρα επι 8. Title: Re: Matlab βοηθεια Post by: Nessa NetMonster on March 29, 2009, 20:33:26 pm Ευχαριστώ Aurelius! :)
Title: Re: Matlab βοηθεια Post by: Aurelius on March 29, 2009, 21:04:28 pm παρακαλω :)
Title: Re: Matlab βοηθεια Post by: stefos on April 09, 2009, 11:59:17 am Υπάρχει κανένας τρόπος να καταχωρούνται οι τιμές που επιστρέφονται από μια συνάρτηση σε πίνακα;
Title: Re: Matlab βοηθεια Post by: Aurelius on April 09, 2009, 13:41:42 pm Υπάρχει κανένας τρόπος να καταχωρούνται οι τιμές που επιστρέφονται από μια συνάρτηση σε πίνακα; Δωσε ενα παραδειγμα Title: Re: Matlab βοηθεια Post by: stefos on April 09, 2009, 14:43:13 pm Υπάρχει κανένας τρόπος να καταχωρούνται οι τιμές που επιστρέφονται από μια συνάρτηση σε πίνακα; Δωσε ενα παραδειγμα Εξάγονται οι τιμές κ μεταβλητών(ορισμάτων εξόδου) σε κάθε μια από τις n επαναλήψεις του αλγορίθμου(συνάρτησης) και εγώ θέλω να εισάγω σε κάθε κελί ενός πίνακα μια από τις n τιμές για την κάθε μεταβλητή. Έχω περιπου.. [a,b,c]=function_name(...) και η συνάρτηση εκτυπώνει n φορές την εκάστοτε τιμή των a,b,c. και θέλω από έναν πίνακα γεμάτο με τις n τιμές που προκύπτουν για τα a,b,c. Γίνεται; Title: Re: Matlab βοηθεια Post by: mendelita on April 09, 2009, 14:48:42 pm Έστω ότι καλείς την συνάρτησή σου μέσα σε ένα for loop. Και έχεις τα ορίσματα εξόδου a b c και θέλεις να τα αποθηκεύεις στους πίνακες A,B,C αντίστοιχα. Θα γίνει ως εξής: Πρώτα αρχικοποιείς τους πίνακες A=[]; B=[]; C=[]; και μετά for i=1:n [a b c]=function_name(...); A = [A a]; B = [B b]; C = [C c]; end Edit: Είδα το edit σου και άλλαξα το όνομα της συνάρτησης :P Title: Re: Matlab βοηθεια Post by: stefos on April 09, 2009, 14:53:43 pm Αν δεν ξέρω εκ των προτέρων τον αριθμό των στοιχείων του πίνακα; (Ο αριθμός των επαναλήψεων προκύπτει μέσα από τον αλγόριθμο-αναφέρομαι σε συνάρτηση βελτιστοποίησης-)
Είμαι πολύ απαιτητικός το ξέρω! :-[ Ευχαριστώ πολύ, όπως και να χει! :) Title: Re: Matlab βοηθεια Post by: mendelita on April 09, 2009, 15:04:19 pm Εννοείς δηλαδή ότι η συνάρτηση είναι αναδρομική; Title: Re: Matlab βοηθεια Post by: stefos on April 09, 2009, 15:06:40 pm εννοώ ότι η συνάρτηση κάνει αναζήτηση κάποιου σημείου και επαναλαμβάνεται μέχρις ότου βρεθεί το βελτιστο αποτέλεσμα.
Μπορώ δηλαδή εκ των προτέρων να υπολογίσω πόσες επαναλήψεις θα κάνει αλλά στο περίπου. Title: Re: Matlab βοηθεια Post by: mendelita on April 09, 2009, 15:12:13 pm Αν μπορείς να βάλεις κάποια μεταβλητή να μετράει τις επαναλήψεις θα είσαι οκ.. Title: Re: Matlab βοηθεια Post by: stefos on April 09, 2009, 15:13:35 pm Nαι αλλά πως θα εξάγω αυτή τη μεταβλητή από τη συνάρτηση πριν να εξάγω τις μεταβλητές που θέλω να βάλω σε πίνακες;
ΟΚ νομίζω πως το βρήκα.. Ευχαριστώ! ;) Title: Απ: Matlab βοηθεια Post by: Tonia on April 09, 2009, 15:22:00 pm γίνεται. εγώ σε αυτα που δουλεύω το κάνω συνέχεια, αλλά χρησιμοποιώ ode, και με αυτην είναι πολύ εύκολο.
όπως και να'χει όμως, δοκιμασε να κανεις μεταβλητές global π.χ. jj, pinakas και μετα μια συναρτησουλα εξοδου, που το μονο που θα κανει ειναι να αυξανει το jj κατα ενα και προηγουμενως να αποθηκευει τις τιμες που θες στον πινακα. π.χ. Α_out(:,jj) = A(:)\ Ο Α θα ειναι global στην συναρτηση που τρεχει συνεχεια μεχρι να βρεθει η τιμη σου, και στην συναρτηση εξοδου. Ο Α_out θα ειναι global στην συναρτηση εξοδου, και στην κυρια ελπιζω να έγινα κατανοητη, αλλιώς θα προσπαθήσω το βράδυ να το εξηγήσω καλύτερα Title: Re: Matlab βοηθεια Post by: stefos on April 09, 2009, 15:27:46 pm Βασικά εγώ σκέφτηκα ότι αφού έτσι κι αλλιώς η συνάρτηση επιστρέφει την τιμή για το πρώτο από τα ορίσματα εξόδου, να βάλω τον αριθμό επαναλήψεων ως πρώτο όρισμα και να την καλώ αποθηκευοντας την παράλληλα σε μια μεταβλητή.
Ύστερα κάνω αυτό που είπε η mendelita έχοντας ως n στην for τη μεταβλητή που αντιπροσωπεύει τον αριθμό των επαναλήψεων.. Θα δειξει.. Title: Re: Matlab βοηθεια Post by: fugiFOX on April 10, 2009, 14:23:45 pm Ποτε μην χρησιμοποιείται global.
Πάντα υπάρχει τρόπος να το κανεις και αλλιώς. Οι global προκαλούν περισσότερα προβληματα από όσα λύνουν Εάν καταλαβα καλά αυτό που θες είναι να εκτελείς μια συνάρτηση Ν φορές αλλά το Ν δεν είναι γνωστό και θες σε κάθε επανάληψη να κρατάς τα αποτελέσματα. Τι σε εμποδίζει να κάνεις κάθε φορά concatenate τους πίνακες όπως πρότεινε η μενδελίτα; Title: Re: Matlab βοηθεια Post by: stefos on April 10, 2009, 20:28:01 pm Λοιπόν θέλω να εξάγω τα αποτελέσματα ενός αλγορίθμου μέσα από ένα m-file, στην κονσόλα εντολών ο οποίος αλγόριθμος πραγματοποιείται n φορές χωρίς το n να είναι γνωστό.
Το μόνο που κατάφερα είναι να αποθηκεύω μόνο το τελευταίο στοιχείο που προκύπτει από τον αλγόριθμο και στις n θέσεις του πίνακα. Χρησιμοποιώ τη μέθοδο της mendelita θέτοντας πιο πριν το n=function_name(...) (στην κλήση αυτή έχω μεταβάλλει τα ορίσματα εξόδου ώστε να επιστρέφεται μόνο το πλήθος των επαναληψεων που εκτελεί ο αλγόριθμος μέσα στη function_name().) Μήπως υπάρχει και άλλος τρόπος να επιστρέφεται το πλήθος των loops(=μέγεθος πίνακα) πριν γεμίσω τον πίνακα; Title: Re: Matlab βοηθεια Post by: stefos on April 10, 2009, 20:59:18 pm Einai aplo re paidia.Sundeeis ta psipsipsinia me ta psispsiloksyla kai vriskeis to kormi patriot tou MATLAB. Ψηλέ αντι να κάνεις χαβαλέ δεν κοιτάς να βοηθήσεις?!! Title: Re: Matlab βοηθεια Post by: Netgull on April 10, 2009, 23:54:56 pm Εξαρτάται από το πλήθος των επαναλήψεων που έχεις.
Για να κάνεις επαναληπτικό αλγόριθμο δεν χρειάζεται να ξέρεις το n εκ των προτέρων. Μπορείς να επεκτείνεις τη συνάρτηση για να επιστρέφει τα a,b,c και ένα flag το οποίο θα είναι πχ 1 συνεχώς και θα γίνεται 0 στην τελευταία επανάληψη του αλγορίθμου. Οπότε βάζεις τη συνάρτηση σε ένα while (flag!=0) A=[A a]; κοκ. Ή εναλλακτικά βάζεις μια μεταβλητή j να μετράει τον αριθμό των επαναλήψεων και θέτεις A(j)=a. Με το δεύτερο τρόπο εάν μπορείς να βάλεις ένα άνω όριο στον αριθμό των επαναλήψεων N που μπορείς να έχεις τότε είναι ακόμα καλύτερα γιατί μπορείς να αρχικοποιήσεις τον πίνακα Α σε πχ Α=zeros(1,N) και μετά να θέτεις A(j)=a. Αυτό το δεύτερο θα τρέχει πολύ πιο γρήγορα από το αν κάνεις δυναμική αύξηση του μεγέθους του πίνακα (όπως πχ με το A=[A a]). Title: Re: Matlab βοηθεια Post by: Witten on April 10, 2009, 23:59:27 pm Λοιπόν έχω το εξής πρόβλημα.
Εκτελώ τις παρακάτω εντολές και μου βγάζει σφάλμα. :-\ Α=[1 2 3 1]; B=qammod(A,4); Αν ξέρει κανείς ας με βοηθήσει. Ευχαριστω. :) Title: Re: Matlab βοηθεια Post by: Witten on April 11, 2009, 00:03:50 am ?? Error using ==> comm\private\ lQAMConst
Attempt to execute SCRIPT j as a function. Error in ==> comm\private\squa qamconst at 71 Const = lQAMConst ; Error in ==> qammod at 51 const = squa qamconst(M,ini_phase); To παραπανω βγαζει Title: Re: Matlab βοηθεια Post by: Tonia on April 11, 2009, 09:52:46 am Ποτε μην χρησιμοποιείται global. Πάντα υπάρχει τρόπος να το κανεις και αλλιώς. Οι global προκαλούν περισσότερα προβληματα από όσα λύνουν κάτω τα χέρια από τις global, είναι οι αγαπημένες μου ^nono^ Title: Re: Matlab βοηθεια Post by: fugiFOX on April 11, 2009, 18:29:16 pm Λοιπόν έχω το εξής πρόβλημα. Σε εμένα πάντως έτρεξε κανονικάΕκτελώ τις παρακάτω εντολές και μου βγάζει σφάλμα. :-\ Α=[1 2 3 1]; B=qammod(A,4); Αν ξέρει κανείς ας με βοηθήσει. Ευχαριστω. :) Εκανα απλώς copypaste τις εντολές σου Title: Re: Matlab βοηθεια Post by: Mendoza on May 05, 2009, 12:14:37 pm Στην αντιστρεψιμότητα μεγάλων πινάκων συνέχεια μου βγάζει:
Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = Ξέρει κανείς πως διορθώνεται πώς διορθώνεται ,υπάρχει διαφορετικός τρόπος να γίνει η αντιστρεψιμότητα χωρίς την inv()? Title: Απ: Matlab βοηθεια Post by: Tonia on May 05, 2009, 13:48:19 pm αυτό σημαινει ρε συ, οτι ο πίνακας σου δεν ειναι ομαλος, μία από τις ορίζουσες του ειναι μηδεν. αρα τι διαίρεση να κανεις..
ψάξε μία μία τις υποορίζουσες του πίνακα σου και δες ποια είναι μηδεν. ίσως έχεις λάθος στον πίνακα Title: Re: Matlab βοηθεια Post by: Mendoza on May 05, 2009, 14:14:59 pm Το πρόβλημα είναι ότι ο πίνακας δεν έχει στάνταρ τιμές..του βάζω εγώ τυχαίες χ=randn(100,6) αλλά κάθε φορά το ίδιο!
Title: Re: Matlab βοηθεια Post by: fugiFOX on May 05, 2009, 15:48:26 pm αυτό σημαινει ρε συ, οτι ο πίνακας σου δεν ειναι ομαλος, μία από τις ορίζουσες του ειναι μηδεν. αρα τι διαίρεση να κανεις.. ψάξε μία μία τις υποορίζουσες του πίνακα σου και δες ποια είναι μηδεν. ίσως έχεις λάθος στον πίνακα δεν είναι απαραίτητο αυτό. έχω την εντύπωση ότι απλά σε ειδοποιεί ότι η μέθοδος αντιστροφής περιέχει κάποιο (σημαντικό; ) σφάλμα Title: Re: Matlab βοηθεια Post by: mendelita on May 05, 2009, 16:14:49 pm Το πρόβλημα είναι ότι ο πίνακας δεν έχει στάνταρ τιμές..του βάζω εγώ τυχαίες χ=randn(100,6) αλλά κάθε φορά το ίδιο! Βασικά πώς αντιστρέφεις έναν πίνακα 100x6 ; :???: Title: Απ: Matlab βοηθεια Post by: Tonia on May 05, 2009, 16:28:24 pm α, ναι βεβαια. δε γινεται.
υπαρχουν ομως οι ψευδοαντιστροφοι. μονο ετσι. ψαξε στην γραμμικη αλγεβρα, γιατι δε το εχω τωρα μπροστα μου. το βραδυ αν θες σου λεω τους τυπους. Title: Re: Matlab βοηθεια Post by: Mendoza on May 05, 2009, 17:05:43 pm Το πρόβλημα είναι ότι ο πίνακας δεν έχει στάνταρ τιμές..του βάζω εγώ τυχαίες χ=randn(100,6) αλλά κάθε φορά το ίδιο! Βασικά πώς αντιστρέφεις έναν πίνακα 100x6 ; :???: παράδειγμα πήγα να φέρω αλλά αποτυχημένο, randn(100,100) τότε.. α, ναι βεβαια. δε γινεται. Οκ το βρήκα ευχαριστώ,χρησιμοποίησα το pinv(A) ,μου βγάζει τα ίδια ακριβώς αποτελέσματα με το inv(A) απλώς δεν μου γράφει warnings και δεν μου τη λέει πλέον :P..τώρα δεν ξέρω κατά πόσο είναι σωστό,αφού βγάζει τα ίδια αλλά τεσπα!υπαρχουν ομως οι ψευδοαντιστροφοι. μονο ετσι. ψαξε στην γραμμικη αλγεβρα, γιατι δε το εχω τωρα μπροστα μου. το βραδυ αν θες σου λεω τους τυπους. Title: Re: Matlab βοηθεια Post by: fugiFOX on May 06, 2009, 13:24:06 pm μπορείς να κάνεις και τα warnings off.
Title: Re: Matlab βοηθεια Post by: mendelita on July 26, 2009, 18:17:50 pm Υπάρχει τρόπος να βάλεις δύο ή περισσότερα datatips σε μία γραφική παράσταση; Title: Re: Matlab βοηθεια Post by: Krono on July 26, 2009, 19:09:20 pm Δεξί click -> Create new Datatip
Title: Re: Matlab βοηθεια Post by: mendelita on July 27, 2009, 14:10:23 pm Δεξί click -> Create new Datatip Αν είναι δυνατόν! Χθες αυτό έκανα αλλά για κάποιο λόγο δεν δούλευε!! :o Τώρα μια χαρά.. :???: Thanks.. :) Title: Re: Matlab βοηθεια Post by: Krono on July 27, 2009, 20:11:06 pm Δεξί click -> Create new Datatip Αν είναι δυνατόν! Χθες αυτό έκανα αλλά για κάποιο λόγο δεν δούλευε!! :o Τώρα μια χαρά.. :???: Thanks.. :) Νομίζω ότι αν δεν είναι πατημένο του κουμπί του datatip δεν βγαίνει αυτό που πρέπει με δεξί click! Κι εμένα με είχε τρελάνει μέχρι να το πάρω χαμπάρι! :) Title: Re: Matlab βοηθεια Post by: Andreas_T on November 16, 2009, 22:54:34 pm Code: clear; Code: ??? Error using ==> mtimes η λυση είναι να βαλω . (=dot) καπου σε δυναμεις? που? Title: Re: Matlab βοηθεια Post by: Γιώργος on November 16, 2009, 22:57:23 pm u=26*(exp(-t*(10^5)/3.09)-exp(-t*(10^6)/0.3)).*(1-exp(-t*(10^8)/2.17));
Check this out. :) Title: Re: Matlab βοηθεια Post by: Andreas_T on November 16, 2009, 23:02:39 pm u=26*(exp(-t*(10^5)/3.09)-exp(-t*(10^6)/0.3)).*(1-exp(-t*(10^8)/2.17)); thx!!!!!!!!!!!!!!!!!! :) Check this out. :) Title: Re: Matlab βοηθεια Post by: Γιώργος on May 24, 2010, 17:41:30 pm Έχω ένα διάνυσμα με κάποια στατιστικά από οργάνωση caches, πχ:
Code: y = [1.0; 1.2; 0.8; 0.6]; Θέλω να φτιάξω κάτι σαν το ακόλουθο διάγραμμα, βάζοντας ουσιαστικά στον άξονα του χ strings. Οι αποστάσεις μεταξύ τους είναι ίσες, προφανώς δεν έχει νόημα η κλίμακα στον άξονα των x. Έχει κανείς ιδέα πώς μπορώ να το κάνω; Ευχαριστώ! Title: Re: Matlab βοηθεια Post by: Aurelius on May 24, 2010, 18:22:46 pm topics = {'16x2', '16x4', '32x4', 32x8'} ;
set(gca,'XTick', 1 : numel(topics),'XTickLabel', topics); Title: Re: Matlab βοηθεια Post by: Γιώργος on May 24, 2010, 18:35:25 pm Θενξ ρε μόρτη. :)
Title: Re: Matlab βοηθεια Post by: Aurelius on May 24, 2010, 18:58:03 pm Τπτ :)
Title: Re: Matlab βοηθεια Post by: harris on June 14, 2010, 22:41:06 pm παιδια εχω ενα σημα.πως μπορω να βρω την rms τιμη του;
Title: Re: Matlab βοηθεια Post by: mendelita on June 14, 2010, 23:24:07 pm y = sqrt(sum(u.*conj(u))/size(u,1)); ? Title: Re: Matlab βοηθεια Post by: harris on June 14, 2010, 23:37:59 pm y = sqrt(sum(u.*conj(u))/size(u,1)); ? μαλλον δεν ημουν σαφης.για simulink εννοω.τι μπλοκ διαγραμμα βαζω;επιπλεον στο scope πως μπορω να κλικαρω πανω στην κυματομορφη και να μου δειξει το ακριβες πλατος; Title: Re: Matlab βοηθεια Post by: mendelita on June 15, 2010, 11:05:25 am Ε πες καλέ ότι εννοείς το simulink.. Άλλο το ένα, άλλο το άλλο! :D Καταρχήν θα σου πρότεινα εκτός από το scope να συνδέσεις σε εκείνο το σημείο ένα μπλοκ "To Workspace" στο οποίο θα βάλεις ένα όνομα για τη μεταβλητή σου και το save format θα το ορίσεις ως structure with time. Οπότε αν η μεταβλητή σου είναι η y, τότε με ένα plot(y.time, y.signals.values) αφού τρέξεις το simulink θα έχεις ένα διάγραμμα στο οποίο μπορείς να δεις ό,τι θες. Τώρα για την rms, αν ανοίξεις το library browser και γράψεις στο search τη λέξη rms θα σου βγάλει κάποια έτοιμα μπλοκ. Δες τις περιγραφές τους για να βρεις ποιο σε βολεύει. :) Title: Re: Matlab βοηθεια Post by: ASDF_ on June 18, 2010, 22:36:37 pm παιδιά έχω ένα πρόβλημα στο simulink
οταν παω να σώσω το μοντέλο μου βγάζει το εξης σφάλμα The model 'kkkk' contains characters that cannot be encoded with the mode;'s character encoding. 'windows-1253' . Either: 1)change the character encoding setting of the model, by using: set_param('kkkk'.SavedCharacterEncoding'.windows-1253') or 2) identify the characters that cannot be encoded and remove them from the model. The first unsupoprted character occurs on the line 23.byte offset 15 in the file (C;/ktl) Το πρώτο το δοκίμασα και μου λέει οτι το ματλαβ δεν εχει τετοια εντολή κανεις καμια ιδέα??? Title: Re: Matlab βοηθεια Post by: pmousoul on June 18, 2010, 22:38:23 pm εάν έχεις γράψει κάτι στα ελληνικά μέσα στο μοντέλο.. μάλλον εκεί είναι το πρόβλημα..
αλλά μπορεί να κάνω και λάθος! :P υ.γ. : btw the solution is by mendelita.. :P Title: Re: Matlab βοηθεια Post by: ASDF_ on June 18, 2010, 22:45:27 pm nai ontos
to problima einai oti sto creator exei to onoma mou sta ellinika tora psaxnw pos to allazw auto Title: Re: Matlab βοηθεια Post by: ^^DaRk_HunTeR on August 07, 2010, 00:03:25 am Λοιπον εχω το εξης προβλημα...
Εχω ενα αρχειο... .txt το οποιο εχει τρεις στηλες 1η στηλη= Χρονος σε μικροσεκ 2η στηλη= Τιμη μετοχης σε αυτο το χρονο 3η στηλη= Ογκος συναλλαγων σε αυτο το χρονο και θελω να κανω ενα διαγραμμα ειτε στο ματλαμπ ειτε στο excel αλλα δεν μου βγαινει οπως θα ηθελα... Απαντησεις για matlab καλο θα ηταν να ειναι κωδικας... Για να καταλαβετε τι χρειαζομαι περιπου δειτε εδω stock chart (http://finance.yahoo.com/echarts?s=IBM#chart1:symbol=ibm;range=1y;indicator=volume;charttype=line;crosshair=on;ohlcvalues=0;logscale=off;source=undefined) Στο excel τα stock charts δεν μου κανουν γιατι δεν εχω τα δεδομενα που ζηταει αλλα δεν μ κανουν και για αλλους λογους, δοκιμασα με το line chart αλλα ειναι πολυ πυκνα τα δεδομενα και βγαινει οπως να ναι... ΥΓ: Καλο θα ηταν να λαβετε υποψην σας πως τα δεδομενα θα ειναι παρα πολλα... δηλ. για 60sec εχω 2036 γραμμες στο excel και τρεις στηλες. Εγω ομως θελω να κανω διαγραμμα για 7 ωρες... Title: Re: Matlab βοηθεια Post by: portinos on March 03, 2011, 02:29:17 am Λοιπόν έχω το εξής πρόβλημα! Κάνω load ένα αρχεία mat και μετά θέλω να χρησιμοποιήσω τα δεδομένα που έχει σαν ένα πίνακα πάνω στον οποίο θα εφαρμόζονται συναρτήσεις, θα γίνονται πράξεις κλπ αλλά δεν μπορώ να βρω με τίποτα πως γίνεται. Καμιά ιδέα κανείς?
Μπορεί να χαζή η απορία αλλά τέτοια ώρα δεν μπορώ να σκεφτώ λογικά ;) Title: Re: Matlab βοηθεια Post by: fugiFOX on March 03, 2011, 10:59:21 am Δεν ξέρω αν υπεύθυνη είανι η ώρα αλλα εγώ δεν καταλαβα τίποτα από το τι θες να κάνεις.
Που κολλάς; Στο load? Στη διαχείριση /συγχώνευση πινάκων; (και πώς ειναι αυτοί) Στα arguments των συναρτήσεων; Αλλού; Title: Re: Matlab βοηθεια Post by: portinos on March 03, 2011, 11:15:00 am Δεν ξέρω αν υπεύθυνη είανι η ώρα αλλα εγώ δεν καταλαβα τίποτα από το τι θες να κάνεις. Καλημέρα κιόλας! Λοιπόν για να καταλάβεις: έχω ένα ερχείο mat που έχει μέσα 500 σταθερές. Θέλω πρώτα να τις εμφανίσω τις τιμές αυτές και μετά να μπουν στη συνάρτηση acos(ωt) σαν η γωνιακή συχνότητα ω και να πάρω σαν αποτέλεσμα τα διάφορα συνημίτοναΠου κολλάς; Στο load? Στη διαχείριση /συγχώνευση πινάκων; (και πώς ειναι αυτοί) Στα arguments των συναρτήσεων; Αλλού; Title: Re: Matlab βοηθεια Post by: Aurelius on March 03, 2011, 11:48:42 am Γιατι δεν τα αποθηκευεις σαν πινανα και να περασεισ αυτον τον πινακα σαν ορισμα στην συναρτηση; Διαφορετικα κανε ενα for loop
dat = load('myfile.mat') ; for i = 1 : numel(fieldnames(dat)) ... end Title: Re: Matlab βοηθεια Post by: fugiFOX on March 03, 2011, 13:27:36 pm Πώς τα κατάφερες και έχεις 500 μεταβλητές;
Ξανασκέψου λίγο τον κώδικά σου στη βάση που γράφει ο Αυρελιους. Title: Re: Matlab βοηθεια Post by: portinos on March 03, 2011, 13:52:43 pm OK ευχαριστώ και τους δύο!!!! Με βοηθήσατε πάρα πολύ. Όσο για τις 500 μεταβλητές, είναι από μετρήσεις και γι' αυτό βγαίνουν τόσες πολλές
Title: Re: Matlab βοηθεια Post by: fugiFOX on March 03, 2011, 14:50:41 pm Δες τοτε πως θα κάνεις τον parser να μη δημιουργεί μεταβλητές αλλά πίνακα.
Δεν μπορείς να διαχειριστείς κώδικα με 500 μεταβλητές Title: Re: Matlab βοηθεια Post by: portinos on March 03, 2011, 15:20:56 pm Δες τοτε πως θα κάνεις τον parser να μη δημιουργεί μεταβλητές αλλά πίνακα. Και πως θα το κάνω αυτό; Βασικά σε τρέλανα και σε ευχαριστώ που ασχολείσαι αλλά πρώτη φορά χειρίζομαι mat files και έχω μπερδευτεί αρκετά. Δοκιμάζω τώρα και αυτό που είπε ο AureliusΔεν μπορείς να διαχειριστείς κώδικα με 500 μεταβλητές Title: Re: Matlab βοηθεια Post by: fugiFOX on March 03, 2011, 15:24:24 pm Δεν υπάρχει πρόβλημα.
Δεν μπορώ όμως να σε βοηθήσω εάν δεν ξέρω τα δεδομένα σου. Πόσταρε εδώ μερικές γραμμές από το αρχείο σου για να δουμε Title: Re: Matlab βοηθεια Post by: portinos on March 03, 2011, 16:00:14 pm Λοιπόν αυτό είναι το δεύτερο mat file που έχω και είναι μεγαλύτερο από το άλλο. Κάνω αυτό:
Code: c4=load('c4.mat') c4 = c4: [1152x1 double] και μετά ένα σφάλμα: ??? Function 'real' is not defined for values of class 'struct'. Error in ==> real at 15 [varargout{1:nargout}] = builtin('real', varargin{:}); Error in ==> xychk at 42 x = real(y); y = imag(y); Error in ==> stem at 40 [msg,x,y] = xychk(args{1:nargs},'plot'); Error in ==> tmima3 at 19 stem(c4) Τέλος όταν ανοίγω το c4 με το file/import data στο matlab μου βγάζει δεδομένα της μορφής 0.03271484375 -4.8828125E-4 -0.05908203125 -0.021484375 αυτά πρέπει να χρησιμοποιήσω βασικά, αλλά πως δεν μπορώ να καταλάβω Title: Re: Matlab βοηθεια Post by: fugiFOX on March 03, 2011, 17:34:05 pm οι μεταβλητές σου μετά το load τη μορφ'η έχουν;
Title: Re: Matlab βοηθεια Post by: megapixel on March 06, 2011, 17:17:21 pm Πως γινεται να φτιαξω μια τετραγωινκη γραφικη παρασταση στο matlab?
με τη κλασικη μεθοδο plot(x,y) δε μου την κανει τετραγωνικη αλλά ενώνει τα σημεία μεταξυ τους Title: Re: Matlab βοηθεια Post by: Wade on March 06, 2011, 17:48:16 pm Αν και δεν ξέρω αν κατάλαβα σωστά τι εννοείς τετραγωνική... Έστω ότι έχεις τα διανύσματα x και y και θέλεις να κάνεις plot(x, y) τότε δοκίμασε αυτό (αλλάζοντας τα x και y με τα δικά σου στις πρώτες δύο γραμμές):
Code: lx=length(x); Αυτό εννοείς; Title: Re: Matlab βοηθεια Post by: megapixel on March 06, 2011, 18:02:28 pm κατι πηγες να κανεις αλλα δε το πετυχες ακριβως.
Εσυ βγαζεις το 1 ενω εγω θελω το 2 Title: Re: Matlab βοηθεια Post by: N3ikoN on March 06, 2011, 18:07:31 pm κατι πηγες να κανεις αλλα δε το πετυχες ακριβως. Εσυ βγαζεις το 1 ενω εγω θελω το 2 δε ξερω αν λεω μλκια , ομως δεν φαινεται σαν την παραγωγο αυτου? Title: Re: Matlab βοηθεια Post by: Wade on March 06, 2011, 18:16:58 pm Για δοκίμασε αυτό:
Code: lx=length(x); Title: Re: Matlab βοηθεια Post by: megapixel on March 06, 2011, 18:30:39 pm Ευχαριστω πολυ, τωρα εγινε
Μπορεις τωρα να μου επις πως θα εμφανιζω τις τιμες στους αξονες οπως δειχνω στο βελακι? Title: Re: Matlab βοηθεια Post by: megapixel on March 06, 2011, 18:40:06 pm οκ το βρηκα, ευχαριστω και παλι
Title: Re: Matlab βοηθεια Post by: Γιώργος on May 20, 2011, 14:00:27 pm Γεια. Σειρά μου να χρειαστώ λίγο help. :P
Ψάχνω σχετικά με ... προβολές σημείων / σχημάτων σε επίπεδο. Συγκεκριμένα ψάχνω για ... κωνική προβολή, δηλαδή με βάση μιας κωνικής πηγής φωτός / κάμερας. Οποιαδήποτε ιδέα καλοδεχούμενη. :) [Παράλληλα σαφώς και ψάχνω και στο google για projections, αλλά αν κάποιος έχει ήδη ασχοληθεί, θα με βοηθούσε] Title: Re: Matlab βοηθεια Post by: fugiFOX on May 20, 2011, 15:21:01 pm δεν ξερω αν βοηθά αλλά όταν πλοτάρεις μια επιφάνεια
με τη συνάρτηση surfc σου εμφανίζει και την προβολή της πάνω στο ΧΥ Title: Re: Matlab βοηθεια Post by: Γιώργος on May 20, 2011, 15:25:12 pm δεν ξερω αν βοηθά αλλά όταν πλοτάρεις μια επιφάνεια με τη συνάρτηση surfc σου εμφανίζει και την προβολή της πάνω στο ΧΥ Ναι, ισχύει, ωστόσο πλοτάρει την ορθοκανονική προβολή της, ενώ εγώ θα ήθελα ένα perspective projection. Θενξ πάντως. :) Title: Re: Matlab βοηθεια Post by: dpa on May 21, 2011, 12:34:29 pm δες και το παρακάτω λινκ,
http://www.mathworks.com/help/techdoc/visualize/f4-22650.html υπάρχει η συνάρτηση http://www.mathworks.com/help/techdoc/ref/camproj.html με την οποία μπορείς να θέσεις εσύ τον τύπο προβολής που θέλεις. Title: Re: Matlab βοηθεια Post by: Γιώργος on May 21, 2011, 12:39:38 pm δες και το παρακάτω λινκ, Thank you, θα τα κοιτάξω (αν και νομίζω ότι έχω ξαναπέσει πανω τους).http://www.mathworks.com/help/techdoc/visualize/f4-22650.html υπάρχει η συνάρτηση http://www.mathworks.com/help/techdoc/ref/camproj.html με την οποία μπορείς να θέσεις εσύ τον τύπο προβολής που θέλεις. Για την ιστορία, να πω ότι έπεσα και πριν λίγο στο viewmtx (http://www.mathworks.com/help/techdoc/ref/viewmtx.html), το οποίο φαίνεται ότι ίσως κάνει την δουλειά που θέλω (θα το κοιτάξω εκτενέστερα). Title: Re: Matlab βοηθεια Post by: Γιώργος on May 27, 2011, 14:33:46 pm Έχει ασχοληθεί κανείς με τριγωνοποίηση; :(
Φτιάχνω ένα κύλινδρο ως εξής: Code: phi=0:pi/60:2*pi; Και τον τριγωνοποιώ με την delaunay ως εξής: Code: tri=delaunay(x,y,z); Το αποτέλεσμα των δύο surf φαίνεται παρακάτω. Το πρόβλημα είναι ότι μετά την τριγωνοποίηση μου "καλύπτονται" οι ... τρύπες του κυλίνδρου. Any ideas how to fix it? Title: Re: Matlab βοηθεια Post by: il capitano on June 05, 2011, 14:59:37 pm Επειδή έχω κολλήσει άσχημα... πως μπορείς να πλοτάρεις έναν κύκλο (έστω μοναδιαίο) σε καρτεσιανό επίπεδο?
Title: Re: Matlab βοηθεια Post by: Γιώργος on June 05, 2011, 15:07:00 pm Επειδή έχω κολλήσει άσχημα... πως μπορείς να πλοτάρεις έναν κύκλο (έστω μοναδιαίο) σε καρτεσιανό επίπεδο? Code: R = 42; enjoy Title: Re: Matlab βοηθεια Post by: il capitano on June 05, 2011, 15:13:28 pm θενξ :)
Title: Re: Matlab βοηθεια Post by: Γιώργος on November 02, 2011, 17:05:15 pm Έχω τον παρακάτω κώδικα, ο οποίος "αναδιατάσσει" τα κελιά ενός 3D πίνακα.
Δηλ, αν: u = (1, 2, 3) v = (1, 1, 1) I = (4, 6, 8) J = (1, 5, 14) Τότε: Out(1,1) = In(4,1) Out(2,1) = In(6,5) Out(3,1) = In(8,14) Το κάνω με for-loops: Code: for i=1:length(u) Αλλά προφανώς είναι αργό. Έχετε κάποια ιδέα για υλοποίηση με matrices; Με κάποιο mask φερ' ειπείν, κάποιο άλλο rearrangement; Ευχαριστώ! Title: Re: Matlab βοηθεια Post by: Time_Tripper on November 02, 2011, 18:17:49 pm απο τη στιγμη που οι πινακες σου ειναι ιδιας διαστασης τοτε νομιζω με ενα απλο Out(u,v)=In(I,J) νομιζω γινεται η δουλεια. Κατσε να το τσεκαρω και θα σου πω και σιγουρα.
Title: Re: Matlab βοηθεια Post by: Γιώργος on November 02, 2011, 18:21:16 pm απο τη στιγμη που οι πινακες σου ειναι ιδιας διαστασης τοτε νομιζω με ενα απλο Out(u,v)=In(I,J) νομιζω γινεται η δουλεια. Κατσε να το τσεκαρω και θα σου πω και σιγουρα. Παίζει να 'χεις δίκιο. Το θέμα είναι ότι μου πετάει:??? Maximum variable size allowed by the program is exceeded. Οπότε μάλλον θα πρέπει να σπάσω σε πολλά κομμάτια τους υπολογισμούς. Title: Re: Matlab βοηθεια Post by: Eru lluvatar on November 02, 2011, 18:37:16 pm ??? Maximum variable size allowed by the program is exceeded. Αυτό έχει να κάνει με την μνήμη που έχει στο PC σου. Υπάρχει και όριο στο πόση μνήμη μπορεί να δει αν είναι 32bit. Μπορεί δηλαδή εσύ να χεις 8GB RAM στο pc αλλά να έχει 32bit OS και Μatlab να βλέπει μόνο ένα μέρος της. Αυτό που σου είπε ο Τime μου φαίνεται σωστό κι μένα με μια γρήγορη ματιά. Για το θέμα της ταχύτητας τώρα, στο Matlab δεν αρέσουν και πολύ τα for, γι αυτό είναι αργά.Ότι μπορεί γράφτο διανυσματικά.Επίσης όταν γεμίζεις ένα πίνακα μέσω for, καλό είναι να τον αρχικοποιήσεις πρώτα με την εντολή zeros πχ που δημιουργείς ένα πίνακα από μηδενικά ότι διαστάσεων θέλεις εσύ.Το for δεν θα αλλάξει, απλά τώρα αυτός δεν θα προσπαθεί να κάνει κάθε φορά allocation στην μνήμη για να προσθέσει τα υπόλοιπα στοιχεία στον πίνακα. Αν δεν ξέρεις το μέγεθος, βάζε μια μεγαλύτερη από κάποια αναμενόμενη τιμή και στο τέλος κάνε ένα triming. Title: Re: Matlab βοηθεια Post by: Time_Tripper on November 02, 2011, 18:42:44 pm Λοιπον ακυρο, σου δινει εναν πινακα ολων των Ι προς ολα τα J ενω εσυ θελεις την διαγωνιο αυτου του πινακα. Μπορει να γινει ευκολα με ενα for απλα δωσμου λιγο χρονο ακομα να δω αν μπορεις να το αποφυγεις και αυτο.
Title: Re: Matlab βοηθεια Post by: Time_Tripper on November 02, 2011, 18:51:45 pm Ok το βρηκα. Λοιπον θα ειναι :
>> Out((v-1)*size(Out,1)+u)=In((J-1)*size(In,1)+I) Απλά και γρήγορα! ;) εδιτ: αν θες και εξηγηση πως συμβαινει δες εδω: http://www.mathworks.com/help/techdoc/math/f1-85462.html (http://www.mathworks.com/help/techdoc/math/f1-85462.html) Title: Re: Matlab βοηθεια Post by: Γιώργος on November 02, 2011, 19:54:19 pm Ευχαριστώ όλους. :) Εν τέλει χρησιμοποίησα την sub2ind για να κάνω τα διδιάστατα indexes μονοδιάστατα και δεν μου παραπονέθηκε.
Οπότε έγινε κάτι στυλ out(i) = in(j); Title: Re: Matlab βοηθεια Post by: Γιώργος on November 03, 2011, 11:45:35 am Ok το βρηκα. Λοιπον θα ειναι : >> Out((v-1)*size(Out,1)+u)=In((J-1)*size(In,1)+I) Απλά και γρήγορα! ;) εδιτ: αν θες και εξηγηση πως συμβαινει δες εδω: http://www.mathworks.com/help/techdoc/math/f1-85462.html (http://www.mathworks.com/help/techdoc/math/f1-85462.html) For the record, αυτό που αναφέρεις το κάνει η sub2ind. :) Οπότε ναι, είχες απόλυτο δίκιο. ;) Βάζοντας το out(u,v) βγάζει out of memory γιατί απλά βγαίνει κάτι τελείως διαφορετικό από αυτό που θέλουμε. :) Title: Re: Matlab βοηθεια Post by: Time_Tripper on November 03, 2011, 14:02:20 pm Ναι οταν βαζεις πινακα για τις συνεταγμανες το παιρνει για μια μονο διασταση και σου δινει τελειως αλλα αποτελεσματα . Γι αυτο πρεπει να "αλλαξεις" λιγο την εκφραση. Την sub2ind δεν την ηξερα, χαιρομαι που υπαρχει ετοιμο κατι τετοιο. Παντως ειδες οτι ολα μπορουν να γινουν με μια γραμμη κωδικα χωρις καμια for και αυτη ειναι και η "μαγεια"/"δυσκολια" του matlab! ;)
Title: Re: Matlab βοηθεια Post by: Eru lluvatar on November 03, 2011, 14:19:47 pm Matlab Magic
έχει σκεφτεί για σένα πριν εσένα. ::) Title: Re: Matlab βοηθεια Post by: il capitano on March 24, 2012, 21:22:21 pm Λοιπόν θέλω να βρω την 2η ρίζα την εξίσωσης tan(a*x) - f(x) = 0, όπου a σταθερά και f(x) γνωστή έκφραση.
Προσπαθώ με την fsolve αλλά δεν έχω πραγματικά ιδέα σε ποιο διάστημα είναι η δεύτερη ρίζα οπότε δεν ξέρω και τι αποτέλεσμα παίρνω.... Καμιά βοήθεια; Title: deleted Post by: BOBoMASTORAS on March 24, 2012, 21:33:26 pm deleted
Title: Re: Matlab βοηθεια Post by: Eru lluvatar on March 24, 2012, 21:54:46 pm δοκίμασε να πλοτάρεις την συνάρτηση για να δεις γραφικά λύσεις. δες περίπου που κοντά είσαι.
μετά αν βάχεις στο x0 διάνυσμα και όχι μια τιμή, αυτές που βλέπεις από το plot θα τρέξει 2 φορές και θα σου βγάλει 2 τιμές. αν δεν θές να το περνάς σαν όρισμα παρακάτω προτείνω απλά γραφικά. Title: Re: Matlab βοηθεια Post by: il capitano on March 24, 2012, 22:10:50 pm @bob θα ήθελα κάτι αυτόματο, αλλά καλή σκέψη γενικά! ίσως καταλήξω σ' αυτό αν δεν βρω τίποτε πιο αυτόματο!
@eru το είδα αυτό σε ένα πρόχειρο googlαρισμα αλλά το θεώρησα κάπως μπακάλικο. Σκέφτηκα να βρω την ρίζα την edit: Anyway θενξ και τους 2 Title: Re: Matlab βοηθεια Post by: Emfanever on March 24, 2012, 22:36:56 pm Όταν λές ότι η f(x) είναι γνωστή έκφραση τι εννοείς?
Title: Re: Matlab βοηθεια Post by: Eru lluvatar on March 25, 2012, 00:27:45 am δεν έχει το Matlab κάτι πιο αυτόματο από το να βάλει vector στο x0.
που το θες αυτό? σε εργασία μαθήματος? αν ναι εγώ θυμάμαι να μου λένε γραφικά λύστε το, φωτονική πχ σε κάτι αποκοπές. edit: υποψιάζομαι ότι θες να βρεις ρυθμούς. οπότε δοκίμασε να βρεις ιδιοτιμές με τις sptan eigs Title: Re: Matlab βοηθεια Post by: il capitano on March 25, 2012, 01:15:34 am Όταν λές ότι η f(x) είναι γνωστή έκφραση τι εννοείς? Γενικά όταν λέω έκφραση θέλω να πω οποιαδήποτε συνάρτηση του x, την οποία όμως την ξέρω. @eru, Όταν λες να βρω ιδιοτιμές, θες να πεις του αρχικού μου πίνακα απ' τον οποίο προκύπτει η ΧΕ που θέλω να λύσω έτσι; Είναι αρκετά πολύπλοκος αυτός ο πίνακας όμως. Νομίζω θα με πάρει άπειρη ώρα, μόνο και μόνο να τον περάσω στο matlab :P Title: Re: Matlab βοηθεια Post by: Eru lluvatar on March 25, 2012, 01:27:06 am Ε λύστο γραφικά τότε :P
Title: Re: Matlab βοηθεια Post by: Emfanever on March 25, 2012, 01:35:19 am Έχω μπερδευτεί λίγο
Αν η f(x) είναι γνωστή και το a είναι γνωστό γιατί δε χρησιμοποιείς τη solve για να βρεις τις ρίζες? Δηλαδή , έστω f(x) = x^2 + x και a=2 γράφεις syms x f = x^2 + x; a = 2; solve(tan(a*x) - f,x) Ή μήπως θέλεις μια γενική λύση συναρτήσει a, f(x) ? Sorry αν δεν κατάλαβα τι εννοείς και λέω βλακείες :P Title: Re: Matlab βοηθεια Post by: asmd on March 25, 2012, 01:36:03 am μπας και σε βοηθάει αυτό :
http://www.wolframalpha.com/input/?i=tan%28a*x%29%2Bf%28x%29%3D0 (http://www.wolframalpha.com/input/?i=tan%28a*x%29%2Bf%28x%29%3D0) δηλ. εάν α και χ πραγματικά χ Ε [-π/α,+π/α] εκτός εάν περιορίζεται περισσότερο από την f(x) Title: Re: Matlab βοηθεια Post by: il capitano on March 25, 2012, 01:48:39 am μπας και σε βοηθάει αυτό : http://www.wolframalpha.com/input/?i=tan%28a*x%29%2Bf%28x%29%3D0 (http://www.wolframalpha.com/input/?i=tan%28a*x%29%2Bf%28x%29%3D0) δηλ. εάν α και χ πραγματικά χ Ε [-π/α,+π/α] εκτός εάν περιορίζεται περισσότερο από την f(x) θενξ δούλεψε αυτό!! @emfanever, Το θέμα είναι ότι η solve βγάζει μόνο την πρώτη ρίζα αυτή της εξίσωσης. Εγώ πχ ήθελα συγκεκριμένα την 2η ρίζα της, και μόνον αυτή! Anyway αφού δούλεψε το link του asmd, problem solved! ;) Title: Re: Matlab βοηθεια Post by: asmd on March 25, 2012, 02:18:06 am δηλ. εάν α και χ πραγματικά χ Ε [-π/α,+π/α] εκτός εάν περιορίζεται περισσότερο από την f(x) αυτό είναι μλκ που έγραψα.. αλλά έψαχνα μια εναλλακτική μορφή μπας και το σώσουμε.. μάλλον η εναλλακτική μορφή θα σε έσωσε. άτιμα μαθηματικά - ποτέ δεν τα πήγαινα! ;D Title: Re: Matlab βοηθεια Post by: il capitano on May 03, 2012, 21:31:16 pm Μόνιμος κάτοικος του τόπικ πλέον
Έχω ένα σήμα X. Βρίσκω τον διακριτό μετασχηματισμό φουριέ του έστω 2048 σημείων με το Y = fft(X,2048); τον βάζω στο κέντρο με Υ_shift = fftshift(Y); και στην συνέχει θέλω να γυρίσω πίσω... Κάνω πχ X_new = ifft(Y,length(X)) και δεν δουλεύει. Αντίστοιχα δεν δουλεύει και η X_new = ifft(Y_shift,length(X)). (δεν δουλεύει υπό την έννοια ότι το τελικό σήμα ουδεμία σχέση έχει με το αρχικό) Please αν κάποιος μπορεί να βρει τι στο διάολο κάνω λάθος. Είμαι σίγουρος ότι κάτι φταίει στο πως πάω στην συχνότητα και γυρνάω πίσω, αλλά το κεφάλι μου δεν μπορεί να σκεφτεί τι εδώ και 2 μέρες :S Title: Re: Matlab βοηθεια Post by: Eru lluvatar on May 03, 2012, 21:39:49 pm t=linspace(-0.5*T0,0.5*T0,3000); %διανυσμα χρονου
r=κατι.*t %σήμα στο χρόνο T=t(2)-t(1); %αποσταση δυο δειγμάτων στο χρονο fs=1/T; %συχνότητα ''sampling'' f=fs*linspace(-1/2,1/2-1/3000,3000); %διανυσμα συχνοτητας r_spec= fftshift( fft(r)*(T*3000) ); %σημα στην συχνότητα r_return_to_time = fft( ifftshift( r_spec ) / (T*3000) ); %επιστροφή στο χρόνο λογικά θα σου δουλέψει edit: δες πως ορίζει τα fft/ifft το matlab με τις φάσεις μήπως τα ορίζει ανάποδα από ότι εμείς και πρέπει να πάρεις ifft για το fourier και το fft για τον αντίστροφο Title: Re: Matlab βοηθεια Post by: il capitano on May 03, 2012, 22:20:04 pm θενξ! είσαι θεός!!
Title: Re: Matlab βοηθεια Post by: Lampros on November 21, 2012, 17:46:34 pm Έχω κάνει ένα for loop και θέλω να αποθηκεύω τις τιμές μου σε έναν πίνακα G.Πως το κάνω?Προσπάθησα διάφορα πράγματα αλλά όλα μου βγάζουν error.
Δηλαδή θέλω το πολύ απλό for i=0:..:i=κάτι .... G(i)=κάποια τιμή; <---πως στο διάολο πρέπει να το γράψω? end Title: Re: Matlab βοηθεια Post by: Grecs on November 21, 2012, 17:48:55 pm Μηπως με [ ] αντι για ()?
Title: Re: Matlab βοηθεια Post by: Lampros on November 21, 2012, 17:50:40 pm μαλάκα πρέπει να είσαι πολύ πιο χαζός απο όσο νόμιζα...
με απογοητεύεις Title: Re: Matlab βοηθεια Post by: Karaμazoβ on November 21, 2012, 17:51:23 pm Έχω κάνει ένα for loop και θέλω να αποθηκεύω τις τιμές μου σε έναν πίνακα G.Πως το κάνω?Προσπάθησα διάφορα πράγματα αλλά όλα μου βγάζουν error. Δηλαδή θέλω το πολύ απλό for i=0:..:i=κάτι .... G(i)=κάποια τιμή; <---πως στο διάολο πρέπει να το γράψω? end α ρε εργασίες Μικροκύματα...με μαθανε MatLab Eστω πίνακας G 1xn, και x μια τυχαία τιμη for i=1:n G(i)=x; end δεν υπάρχει δηλαδή μηδενικο στοιχειο G(0) = x Title: Re: Matlab βοηθεια Post by: Grecs on November 21, 2012, 17:52:10 pm Α ναι στο ματλαμπ θελει παρενθεσεις.
Title: Re: Matlab βοηθεια Post by: Lampros on November 21, 2012, 17:53:12 pm Το δοκίμασα αυτό και μου βγάζει error...
πως ορίζεις τον πίνακα πριν απο το loop? Title: Re: Matlab βοηθεια Post by: Karaμazoβ on November 21, 2012, 17:55:16 pm Το δοκίμασα αυτό και μου βγάζει error... πως ορίζεις τον πίνακα πριν απο το loop? τι σου λεει το error ?? Title: Re: Matlab βοηθεια Post by: Lampros on November 21, 2012, 17:58:03 pm Βασικά αυτό με το 0 δεν το ήξερα απλά στην εκφώνηση λέει απο 0 ως μια τιμή..πως θα το κάνω αυτό?
τα ερρορ είναι 2 : Error in ==> Askisi1_1 at 18 G(f)=(Yo-yin)/(Yo+yin); Error in ==> run at 57 evalin('caller', [s ';']); Title: Re: Matlab βοηθεια Post by: Karaμazoβ on November 21, 2012, 17:59:30 pm Βασικά αυτό με το 0 δεν το ήξερα απλά στην εκφώνηση λέει απο 0 ως μια τιμή..πως θα το κάνω αυτό? τα ερρορ είναι 2 : Error in ==> Askisi1_1 at 18 G(f)=(Yo-yin)/(Yo+yin); Error in ==> run at 57 evalin('caller', [s ';']); αυτό το f τι είναι?? Title: Re: Matlab βοηθεια Post by: Lampros on November 21, 2012, 18:00:12 pm Μη κoλλάς σε λεπτομέρειες ρε συ...αντί για i έχω f...
Title: Re: Matlab βοηθεια Post by: Lampros on November 21, 2012, 18:02:22 pm Λοιπόν για να μην μπερδευόμαστε ο κώδικας είναι αυτός
Code: Zo=50; Title: Re: Matlab βοηθεια Post by: Grecs on November 21, 2012, 18:04:39 pm Aφου εχεις f απο 0 μας δουλευεις?
βαλε G(f+1) Title: Re: Matlab βοηθεια Post by: Karaμazoβ on November 21, 2012, 18:09:42 pm Μη κoλλάς σε λεπτομέρειες ρε συ...αντί για i έχω f... οκ ρε, γιατι θύμησε την συχνοτητα f, και είπα μηπως. Λοιπον, μπορει να ειναι αυτονόητο και να το χεις κανει, αλλα το λεω έτσι κι αλλιως. Εστω πως σου λεει απο 0 ως 10 GHz, και για καλή (?) ακρίβεια παίρνεις 100 δείγματα. αρα Δf = 10/100 = 0.1 GHz το βημα της δειγματοληψίας. Αρα ο πινακας θα εχει n=100 στοιχεία με f(1)=0;, f(2)=0.1; f(3)=0.3; ... f(100)=10; επομενως ετσι βγαζεις τους συντελεστες ανακλασης απο 0 ως 10...αρκει φυσικα να υπολογίζεις την σωστή Yin για καθε δείγμα βεβαια! Title: Re: Matlab βοηθεια Post by: bakeneko on November 21, 2012, 18:10:18 pm f=0:(4*f0/N):(4*f0)
Εκτός από το 0 που έχεις, το πρόβλημα για το μάτλαμπ είναι αυτά τα άλλα f δε βγαίνουν ακέραιοι, δηλαδή δεν μπορείς να βάλεις G(1,5). Θα πρέπει να βρεις έναν άλλο τρόπο να το κάνεις, π.χ. να βάλεις οι κάθε 10 στήλες του G να αντιπροσωπεύουν 1 μονάδα του οριζόντιου άξονά σου! (δεν ξέρω ακριβώς τι κάνεις οπότε δεν μπορώ να σου πω και ακριβώς, απλά πετάω μια ιδέα :P ) Title: Re: Matlab βοηθεια Post by: Lampros on November 21, 2012, 18:13:16 pm f=0:(4*f0/N):(4*f0) Εκτός από το 0 που έχεις, το πρόβλημα για το μάτλαμπ είναι αυτά τα άλλα f δε βγαίνουν ακέραιοι, δηλαδή δεν μπορείς να βάλεις G(1,5). Θα πρέπει να βρεις έναν άλλο τρόπο να το κάνεις, π.χ. να βάλεις οι κάθε 10 στήλες του G να αντιπροσωπεύουν 1 μονάδα του οριζόντιου άξονά σου! (δεν ξέρω ακριβώς τι κάνεις οπότε δεν μπορώ να σου πω και ακριβώς, απλά πετάω μια ιδέα :P ) Σωστός ρε..λολ Απλά πως θα το κάνω αυτό.Να βάλω μια δεύτερη λούπα? Title: Re: Matlab βοηθεια Post by: Karaμazoβ on November 21, 2012, 18:15:55 pm f=0:(4*f0/N):(4*f0) Εκτός από το 0 που έχεις, το πρόβλημα για το μάτλαμπ είναι αυτά τα άλλα f δε βγαίνουν ακέραιοι, δηλαδή δεν μπορείς να βάλεις G(1,5). Θα πρέπει να βρεις έναν άλλο τρόπο να το κάνεις, π.χ. να βάλεις οι κάθε 10 στήλες του G να αντιπροσωπεύουν 1 μονάδα του οριζόντιου άξονά σου! (δεν ξέρω ακριβώς τι κάνεις οπότε δεν μπορώ να σου πω και ακριβώς, απλά πετάω μια ιδέα :P ) Σωστός ρε..λολ Απλά πως θα το κάνω αυτό.Να βάλω μια δεύτερη λούπα? αποσυμπλεξε τον υπολογισμο του f απο το loop. Βαλε i=1:n και μεσα στο loop βαλε f(i) = i*df; , οπου df το βημα ((fmax-fmin)/n Ghz). Μετα οπου f, αντικατεστησε με f(i). στο τελος plot(f,G) Title: Re: Matlab βοηθεια Post by: Grecs on November 21, 2012, 18:19:30 pm f=0:(4*f0/N):(4*f0) Εκτός από το 0 που έχεις, το πρόβλημα για το μάτλαμπ είναι αυτά τα άλλα f δε βγαίνουν ακέραιοι, δηλαδή δεν μπορείς να βάλεις G(1,5). Θα πρέπει να βρεις έναν άλλο τρόπο να το κάνεις, π.χ. να βάλεις οι κάθε 10 στήλες του G να αντιπροσωπεύουν 1 μονάδα του οριζόντιου άξονά σου! (δεν ξέρω ακριβώς τι κάνεις οπότε δεν μπορώ να σου πω και ακριβώς, απλά πετάω μια ιδέα :P ) Σωστός ρε..λολ Απλά πως θα το κάνω αυτό.Να βάλω μια δεύτερη λούπα? Αμα θες και τα f βαλτα σε μια γραμμη του G απο διπλα. Title: Re: Matlab βοηθεια Post by: Lampros on November 21, 2012, 18:24:59 pm f=0:(4*f0/N):(4*f0) Εκτός από το 0 που έχεις, το πρόβλημα για το μάτλαμπ είναι αυτά τα άλλα f δε βγαίνουν ακέραιοι, δηλαδή δεν μπορείς να βάλεις G(1,5). Θα πρέπει να βρεις έναν άλλο τρόπο να το κάνεις, π.χ. να βάλεις οι κάθε 10 στήλες του G να αντιπροσωπεύουν 1 μονάδα του οριζόντιου άξονά σου! (δεν ξέρω ακριβώς τι κάνεις οπότε δεν μπορώ να σου πω και ακριβώς, απλά πετάω μια ιδέα :P ) Σωστός ρε..λολ Απλά πως θα το κάνω αυτό.Να βάλω μια δεύτερη λούπα? αποσυμπλεξε τον υπολογισμο του f απο το loop. Βαλε i=1:n και μεσα στο loop βαλε f(i) = i*df; , οπου df το βημα ((fmax-fmin)/n Ghz). Μετα οπου f, αντικατεστησε με f(i). στο τελος plot(f,G) έτσι όμως η λούπα θα κάνει μόνο 4 επαναλήψεις(στη δική μου περίπτωση)... Title: Re: Matlab βοηθεια Post by: bakeneko on November 21, 2012, 18:25:17 pm Αν θέλεις να γίνεις λίγο μπακάλης πάντως μπορείς απλά αντί για "f" (στο G(f)) να βάλεις round(100*f), όπου round κάνει στρογγυλοποίηση στον κοντινότερο ακέραιο, και αρκεί βέβαια το 100 να σου δίνει την επιθυμιτή ανάλυση στον άξονα (π.χ. μη σου βγει 2 φορές το ίδιο νούμερο με τη στρογγυλοποίηση), αλλιώς μπορείς να βάλεις και 1000 κτλ, και απλά μετά να το έχεις υπόψη σου αυτό στους υπόλοιπους υπολογισμούς, και αν εμφανίζονται νούμερα στο plot να αναφέρεις την κλίμακα!
Title: Απ: Matlab βοηθεια Post by: Karaμazoβ on November 21, 2012, 18:27:58 pm f=0:(4*f0/N):(4*f0) Εκτός από το 0 που έχεις, το πρόβλημα για το μάτλαμπ είναι αυτά τα άλλα f δε βγαίνουν ακέραιοι, δηλαδή δεν μπορείς να βάλεις G(1,5). Θα πρέπει να βρεις έναν άλλο τρόπο να το κάνεις, π.χ. να βάλεις οι κάθε 10 στήλες του G να αντιπροσωπεύουν 1 μονάδα του οριζόντιου άξονά σου! (δεν ξέρω ακριβώς τι κάνεις οπότε δεν μπορώ να σου πω και ακριβώς, απλά πετάω μια ιδέα :P ) Σωστός ρε..λολ Απλά πως θα το κάνω αυτό.Να βάλω μια δεύτερη λούπα? αποσυμπλεξε τον υπολογισμο του f απο το loop. Βαλε i=1:n και μεσα στο loop βαλε f(i) = i*df; , οπου df το βημα ((fmax-fmin)/n Ghz). Μετα οπου f, αντικατεστησε με f(i). στο τελος plot(f,G) έτσι όμως η λούπα θα κάνει μόνο 4 επαναλήψεις(στη δική μου περίπτωση)... γιατι 4 ρε? βαλε εκει 100-500 να δεις την υγεια σου Title: Re: Matlab βοηθεια Post by: Lampros on November 21, 2012, 18:43:25 pm λοιπόν έκανα τις εξής αλλαγές και μοιάζει να δουλεύει..
Code: Zo=50; το τελευταίο κομμάτι είναι γιατί θέλω τις τιμές σε dB..μου φαίνεται όμως πως έχω κάποιο λογικό λάθος. Τέλος πάντων ευχαριστώ για τις απαντήσεις με βοηθήσατε! Title: Re: Matlab βοηθεια Post by: Lampros on November 22, 2012, 14:34:57 pm Για να πάρω το μέτρο ενός μιγαδικού αριθμού, θα χρησιμοποιήσω την συνάρτηση abs(value) ?
(Το ρωτάω γιατί μου βγάζει περίεργα αποτελέσματα και ενώ έχω ψάξει το πρόγραμμά μου πολύ δεν βρίσκω κάποιο άλλο λογικό λάθος) Title: Re: Matlab βοηθεια Post by: il capitano on November 22, 2012, 14:45:35 pm Θεωρητικά ναι, αλλά νομίζω και μένα μου παρουσίαζε προβλήματα κατά καιρόυς, και τότε έκανα το παλιό καλό
Code: sqrt((real(x)).^2+(imag(x)).^2) Title: Re: Matlab βοηθεια Post by: png on December 21, 2012, 18:32:10 pm λοιπόν:
θέλω να χρησιμοποίσω την fzero για να βρω νουμερικώς τις ριζες μιάς τριγωνομετρικής εξίσωσης η οποία δε λύνεται αναλυτικά. η fzero θελει function handler. εγώ έχω αυτό: Code: syms theta; τα y, y1, y2 είναι symbolic variables (απ'όσο κατάλαβα). τι πρέπει να τα κάνω ώστε μια fzero μεσα στη λούπα να μη μου γυρνάει error; (πλιζ, όχι references στο documentation της mathworks, γιατι ειναι καλό μόνο άμα έχεις χρόνο και υπομονή) και γενικά έχω μπλεχτεί άπειρα. Title: Re: Matlab βοηθεια Post by: Karaμazoβ on December 21, 2012, 18:49:08 pm να σε ρωτησω, γιατι δεν χρησιμοποιείς την solve(y,theta) ??
Title: Re: Matlab βοηθεια Post by: png on December 21, 2012, 18:50:29 pm γιατι δε μπορεί να τη λύσει.
μου βγαζει ans= arg(Re(z1)+i*Im(z2))+2*pi*k το οποίο δε βοηθάει ιδιαίτερα. Title: Re: Matlab βοηθεια Post by: Karaμazoβ on December 21, 2012, 18:54:53 pm γιατι δε μπορεί να τη λύσει. μου βγαζει ans= arg(Re(z1)+i*Im(z2))+2*pi*k το οποίο δε βοηθάει ιδιαίτερα. εισαι σιγουρη?? απο το MatLab 2011b: Code: syms theta; Title: Re: Matlab βοηθεια Post by: png on December 21, 2012, 18:57:43 pm εχω το 2010α... λες να φταιει αυτο;
(επισης θελω οι τιμες του solve να ειναι πραγματικες) Title: Re: Matlab βοηθεια Post by: Eru lluvatar on December 21, 2012, 19:07:37 pm δοκίμασε fsolve.
πραγματική είναι η λύση του Karaμazoβ το φανταστικό μέρος είναι σφάλμα μηχανής 1e-34 Title: Απ: Matlab βοηθεια Post by: Karaμazoβ on December 21, 2012, 19:09:40 pm δοκίμασε fsolve. πραγματική είναι η λύση του Karaμazoβ το φανταστικό μέρος είναι σφάλμα μηχανής 1e-34 το μυστηριώδες είναι οτι σκαλώνει στην y(theta) και βγαζει μιγαδικό, ενω στο διαγραμμα φαινεται οτι εχει δυο ριζες Title: Re: Matlab βοηθεια Post by: png on December 21, 2012, 19:13:03 pm *sigh*
σας ευχαριστώ. Title: Re: Απ: Matlab βοηθεια Post by: Eru lluvatar on December 21, 2012, 19:26:21 pm δοκίμασε fsolve. πραγματική είναι η λύση του Karaμazoβ το φανταστικό μέρος είναι σφάλμα μηχανής 1e-34 το μυστηριώδες είναι οτι σκαλώνει στην y(theta) και βγαζει μιγαδικό, ενω στο διαγραμμα φαινεται οτι εχει δυο ριζες Η solve είναι για πολυώνυμα αν δεν κάνω λάθος. Code: yy =@(theta) sin(theta).^2+ 2*h*cos(theta-phi); Title: Re: Matlab βοηθεια Post by: Karaμazoβ on December 21, 2012, 19:44:49 pm γαμηστερός ρε Eru !
η solve δεν ειναι μονο για πολυώνυμα, εχω λύσει και λογαριθμικες , αλλα επειδη ειναι περιοδική μαλλον κομπλαρει, και δε μπορείς να βαλεις πεδίο ορισμου να ψαξει... Title: Re: Matlab βοηθεια Post by: Eru lluvatar on December 21, 2012, 19:54:27 pm δε ξέρω δεν την έχω δουλέψει την solve γι αυτό είπα νομίζω :P
Γενικά fsolve χρησιμοποιώ στην οποία μπορείς να περάσεις και πολλές παραμέτρους. Αργεί καμιά φορά αλλά την κάνει την δουλεία της. Title: Re: Matlab βοηθεια Post by: Karaμazoβ on December 21, 2012, 19:56:23 pm δε ξέρω δεν την έχω δουλέψει την solve γι αυτό είπα νομίζω :P Γενικά fsolve χρησιμοποιώ στην οποία μπορείς να περάσεις και πολλές παραμέτρους. Αργεί καμιά φορά αλλά την κάνει την δουλεία της. πρεπει να χεις και μια ιδεα για το ποσες ειναι οι λυσεις και που περίπου είναι, αλλα εν προκειμένω τις πληροφορίες αυτές τις έχεις, γιατι κανεις πλοτ Title: Re: Matlab βοηθεια Post by: Decadence on January 02, 2013, 22:48:11 pm a = fi(v,s,w,F) returns a fixed-point object with value v, Signed property value s, word length w, best-precision fraction length, and embedded.fimath F. μπορεί να μου εξηγήσεις κάποιος τι παριστάνει το "embedded.fimath F" το έψαξα στο documentation, αλλά δεν έβγαλα άκρη.. Title: Re: Matlab βοηθεια Post by: Decadence on January 02, 2013, 23:30:03 pm νομίζω έβγαλα μια άκρη.. μάλλον δεν έπρεπε να ασχοληθώ καν..
"Specifying a Fixed-Point Input Parameter by Example To specify fixed-point inputs, you must install Fixed-Point Toolbox software. To specify a signed fixed-point type with a word length of 8 bits, and a fraction length of 3 bits, in the Define by Example dialog box, enter: fi(10, 1, 8, 3) HDL Coder sets the type of input to embedded.fi(1x1). By default, if you have not specified a local fimath, HDL Coder uses the global fimath. " κάτι τέτοιο πρέπει να παριστάνει το "embedded.fimath F" το συγκεκριμένο παράδειγμα αναφέρεται σε αυτήν την μορφή : a = fi(v,s,w,f) returns a fixed-point object with value v, Signed property value s, word length w, and fraction length f. αλλά λέει ότι : HDL Coder sets the type of input to embedded.fi(1x1). Title: Re: Matlab βοηθεια Post by: Elade on January 06, 2013, 22:31:18 pm η συνάρτηση δέλτα στο matlab είναι dirac έτσι? γιατί προσπαθώ νατην χρησιμοποιήσω και μου λέει ότι είναι undefined
Title: Re: Matlab βοηθεια Post by: Eru lluvatar on January 06, 2013, 22:54:30 pm μόνο με syms δουλεύει νομίζω
Title: Re: Matlab βοηθεια Post by: Elade on January 06, 2013, 22:56:10 pm που σημαίνει?(είμαι τελείως άσχετος sorry :P )
Title: Re: Matlab βοηθεια Post by: Eru lluvatar on January 06, 2013, 23:01:05 pm πρέπει να έχεις ορίσει κάποιου πιο πανω μια μεταβλητή τύπου syms στον κώδικα σου
δεν ξέρω τι θες να προσομοιώσεις ακριβώς γράψε doc syms στο command line για παραπάνω λεπτομέρειες το dirac(5) δεν θα σου δουλέψει πάντως Title: Re: Matlab βοηθεια Post by: Elade on January 06, 2013, 23:02:02 pm θα το κοιτάξω, ευχαριστώ για τη βοήθεια :-)
Title: Re: Matlab βοηθεια Post by: Lampros on January 13, 2013, 23:34:26 pm Πως αντιστρέφω πίνακα?
Δοκίμασα το inv(A) αλλά ώς απάντηση πήρα FAIL :D Title: Re: Matlab βοηθεια Post by: Karaμazoβ on January 13, 2013, 23:36:36 pm Πως αντιστρέφω πίνακα? Δοκίμασα το inv(A) αλλά ώς απάντηση πήρα FAIL :D τι σου λεει το MatLab? Title: Re: Matlab βοηθεια Post by: Lampros on January 13, 2013, 23:37:12 pm FAIL
Να: >> inv(B) ans = FAIL >> B^(-1) ans = FAIL Title: Re: Matlab βοηθεια Post by: Karaμazoβ on January 13, 2013, 23:42:23 pm ντόινγκ
ο πινακας είναι τετραγωνικος, ετσι? Title: Re: Matlab βοηθεια Post by: jason_ on January 13, 2013, 23:46:38 pm η ορίζουσα του πίνακα είναι διάφορη του μηδενός (και άρα αντιστρέψιμος);
Title: Re: Matlab βοηθεια Post by: Lampros on January 13, 2013, 23:47:35 pm Ναι ο πίνακας είναι 4χ4
Παίζει ρόλο αυτό? εδιτ: οκ βασικά πρέπει να έχω λάθος στα στοιχεία του πίνακα γιατί η ορίζουσα βγαίνει όντως μηδεν για κάποιο λόγο.Οπότε σόρι Title: Re: Matlab βοηθεια Post by: crystal on January 14, 2013, 13:01:25 pm Ναι ο πίνακας είναι 4χ4 Παίζει ρόλο αυτό? εδιτ: οκ βασικά πρέπει να έχω λάθος στα στοιχεία του πίνακα γιατί η ορίζουσα βγαίνει όντως μηδεν για κάποιο λόγο.Οπότε σόρι Νομίζω αν έχεις στοιχεία syms μέσα στον πίνακα , δεν δουλεύει το inv() Title: Re: Matlab βοηθεια Post by: Emfanever on January 14, 2013, 13:17:32 pm Ναι ο πίνακας είναι 4χ4 Παίζει ρόλο αυτό? εδιτ: οκ βασικά πρέπει να έχω λάθος στα στοιχεία του πίνακα γιατί η ορίζουσα βγαίνει όντως μηδεν για κάποιο λόγο.Οπότε σόρι Νομίζω αν έχεις στοιχεία syms μέσα στον πίνακα , δεν δουλεύει το inv() Εγώ που δοκίμασα δουλεύει. Επίσης ένας άλλος τρόπος για να κάνεις πχ inv(A)*B είναι να γράψεις Α\Β Title: Re: Matlab βοηθεια Post by: Lampros on January 25, 2013, 23:57:03 pm To σκέτο log(χ) είναι το ln(χ)?
Title: Απ: Matlab βοηθεια Post by: Karaμazoβ on January 26, 2013, 00:01:59 am Title: Re: Matlab βοηθεια Post by: igoutas on February 21, 2013, 15:55:53 pm παιδιά μπορεί να μου πεί κάποιος για κανένα free tutorial για την matlab για αρχάριους για να κατεβάσω?
Title: Re: Matlab βοηθεια Post by: Grecs on February 21, 2013, 15:57:25 pm παιδιά μπορεί να μου πεί κάποιος για κανένα free tutorial για την matlab για αρχάριους για να κατεβάσω? http://www.youtube.com/playlist?list=PL7CAABC40B2825C8B&feature=plcpTitle: Re: Matlab βοηθεια Post by: igoutas on February 21, 2013, 19:49:33 pm μόνο σ youtube δηλαδή σε άλλη μορφή δεν προτείνεται κάτι?
Title: Re: Matlab βοηθεια Post by: Neal on February 21, 2013, 20:05:11 pm Δοκίμασες να το googlareis αυτό που ψάχνεις;
Title: Re: Matlab βοηθεια Post by: igoutas on February 21, 2013, 20:11:46 pm προφανώς και έχει πολλά!κατι που να έχετε δεί και δοκιμάσει απλά ρωτάω!
Title: Re: Matlab βοηθεια Post by: testiculos on February 21, 2013, 20:24:56 pm παιδιά μπορεί να μου πεί κάποιος για κανένα free tutorial για την matlab για αρχάριους για να κατεβάσω? Δες και αυτό (http://kype.auth.gr/downloads/e-courses/index.html) Είναι για τελείως αρχάριους, ελπίζω να βοηθήσει ;) Title: Re: Matlab βοηθεια Post by: christineL on April 14, 2013, 18:42:12 pm Έχω το εξής πρόβλημα. Έχω αυτή τη συνάρτηση:
Code: function [ A ,B] = dixotomos2( func,a,b,l,e) και όταν πάω να την καλέσω πχ [a,b]=dixotomos2(@f1,0,4,0.01,0.001) έχοντας φτιάξει φυσικά την f1 κολάει και δεν γίνεται τίποτα. Προφανώς έχω λάθος στην συνάρτηση,αλλα δεν μπορώ να το βρω με τίποτα .Καμιά ιδέα; Title: Re: Matlab βοηθεια Post by: il capitano on April 14, 2013, 18:48:19 pm Έχω την εντύπωση ότι έχει ατέρμων βρόγχο :P
Μέσα στο while δεν αλλάζεις τιμές στα a,b έτσι άπαξ και b-a>l στην αρχή, τότε αυτό θα είναι ίδιο για πάντα... Title: Re: Matlab βοηθεια Post by: christineL on April 14, 2013, 18:54:26 pm Αν δεν βλέπεις μπροστά σου αυτά παθαίνεις. Ευχαριστώ πολύ!!
Title: Re: Matlab βοηθεια Post by: teslaaaa on April 14, 2013, 21:37:31 pm ας πάρω το θάρρος να ρωτήσω και εγώ τι πάει στραβά παρακάτω:
Code: function [ak,bk] = dichotomy_method( l,e,a ) Title: Re: Matlab βοηθεια Post by: T--hmmy on April 14, 2013, 21:41:32 pm ερωτηματικό στο τέλος?
Title: Re: Matlab βοηθεια Post by: Emfanever on April 14, 2013, 21:43:38 pm ας πάρω το θάρρος να ρωτήσω και εγώ τι πάει στραβά παρακάτω: Code: function [ak,bk] = dichotomy_method( l,e,a ) Για αρχή βάλε elseif αντί για else if Title: Re: Matlab βοηθεια Post by: teslaaaa on April 14, 2013, 21:49:01 pm δουλεύει! :D
danke!!! ;) πριν μου έβγαζε ένα κόλλημα σαν αυτό που είχε η κριστινέλ! Title: Re: Matlab βοηθεια Post by: T--hmmy on April 14, 2013, 22:08:37 pm δάσκαλε βάλε ak=0 bk=0 στην αρχή και παίζει και με το else if
Title: Re: Matlab βοηθεια Post by: teslaaaa on April 14, 2013, 22:13:44 pm δάσκαλε βάλε ak=0 bk=0 στην αρχή και παίζει και με το else if όταν το κανα αυτό laggαρε πάλι! ;DTitle: Re: Matlab βοηθεια Post by: T--hmmy on April 14, 2013, 22:19:01 pm δάσκαλε βάλε ak=0 bk=0 στην αρχή και παίζει και με το else if όταν το κανα αυτό laggαρε πάλι! ;DOutput argument "ak" (and maybe others) not assigned during call όριζοντας τα ak bk ok.Ίσως δεν τα έβαλες στην αρχή της συνάρτησης,ίσως σε τρολλάρει το matlab :D Title: Re: Matlab βοηθεια Post by: teslaaaa on April 14, 2013, 22:22:16 pm στην αρχη τα ειχα βαλει
αλλα και χωρις αρχικοποιηση τους,μια χαρα νουμερα βγαζει παλι! θενξ για την τρολλο-απαντηση παντως! :P Title: Re: Matlab βοηθεια Post by: Randall Flagg on April 24, 2013, 11:21:00 am function [aa,bb] = squarepar(e)
x = [0 1 4]; k=1; while (x(1,3)-x(1,1))>e y = [ eq1(x(1,1)) eq1(x(1,2)) eq1(x(1,3))]; d=polyfit(x,y,2); dd=polyder(d); w=roots(dd); if w>x(1,2) if eq1(w)>=eq1(x(1,2)) x(1,3)=w; else x(1,1)=x(1,2); x(1,2)=w; end; elseif w<x(1,2) if eq1(w)>=eq1(x(1,2)) x(1,1)=w; else x(1,3)=x(1,2); x(1,2)=w; end; else if x(1,3)-x(1,2) < x(1,2)-x(1,1) w=x(1,2)-e/2; if eq1(w)>=eq1(x(1,2)) x(1,1)=w; else x(1,3)=x(1,2); x(1,2)=w; end; else w=x(1,2) + e/2; if eq1(w)>=eq1(x(1,2)) x(1,3)=w; else x(1,1)=x(1,2); x(1,2)=w; end; end; end; k=k+1; end; aa=x(1,1) bb=x(1,3) k=k end μου βγάζει συνέχεια το ίδιο αποτέλεσμα :-\ έχει κανείς ιδέα τι πάει λάθος;;; Title: Re: Matlab βοηθεια Post by: Merlin on April 24, 2013, 11:55:02 am Έχω το εξής πρόβλημα. Έχω αυτή τη συνάρτηση: Code: function [ A ,B] = dixotomos2( func,a,b,l,e) και όταν πάω να την καλέσω πχ [a,b]=dixotomos2(@f1,0,4,0.01,0.001) έχοντας φτιάξει φυσικά την f1 κολάει και δεν γίνεται τίποτα. Προφανώς έχω λάθος στην συνάρτηση,αλλα δεν μπορώ να το βρω με τίποτα .Καμιά ιδέα; Τσέκαρε τις τιμές των a και b,την συνθήκη στο while και βάλε ένα άνω όριο επαναλήψεων που να κάνει break την while,πχ με a=0,b=4 και l=0,01 τα x1,x2 => α,β θα αλλάζουν κατά +-e=0,01 οπότε ο βρόχος θα κάνει πολλές επαναλήψεις.Βάλε πχ n = 100 while () .... if (k==n) break end ... end Title: Re: Matlab βοηθεια Post by: teslaaaa on April 29, 2013, 23:09:21 pm Code: function X = newton_stathero( x0,y0,e,gk,df,d2f ) ??? Error using ==> times Matrix dimensions must agree. Error in ==> newton_stathero at 22 dk=-i.*[grad(1);grad(2)];%(2x2)*(2x1)=(2x1) μπορει κανεις να βρει τι μου διαφευγει? ευχαριστω! :) εδιτ:ακυρο,η τελεια εκανε ολη τη ζημια τλκα :D Title: Re: Matlab βοηθεια Post by: T--hmmy on April 30, 2013, 16:52:50 pm teslaaaa trolling
Title: Re: Matlab βοηθεια Post by: Δον on May 01, 2013, 23:57:42 pm Xρειάζομαι και γω βοήθεια με το matlab.
Έχω τον κώδικα : Code: function m = LevenbergMarquart( f,x0,y0 ) Και μου βγάζει το error : ??? Undefined function or method 'norm' for input arguments of type 'sym'. Error in ==> LevenbergMarquart at 18 while norm(gradf(xk(1),xk(2)),2)>=e Ενώ το norm() στην 1η επανάληψη υπολογίζεται κανονικά, στη 2η με πετάει από τη συνάρτηση. Εν τω μεταξύ δοκίμασα και "με το χέρι" στο command line του matlab να τρέξω τις ίδιες ακριβώς εντολές, με την ίδια ακριβώς σειρά και μου τρέχει κανονικότατα. Έχει κανείς καμιά ιδέα τι παίζει :-\ ??? Title: Re: Matlab βοηθεια Post by: edenaxas on May 02, 2013, 00:37:31 am γιατι δεν το τρεχεις σε debug να δεις τι παιζει αναλυτικα?
Title: Re: Matlab βοηθεια Post by: Merlin on May 02, 2013, 00:53:09 am Xρειάζομαι και γω βοήθεια με το matlab. Έχω τον κώδικα : Code: function m = LevenbergMarquart( f,x0,y0 ) Και μου βγάζει το error : ??? Undefined function or method 'norm' for input arguments of type 'sym'. Error in ==> LevenbergMarquart at 18 while norm(gradf(xk(1),xk(2)),2)>=e Ενώ το norm() στην 1η επανάληψη υπολογίζεται κανονικά, στη 2η με πετάει από τη συνάρτηση. Εν τω μεταξύ δοκίμασα και "με το χέρι" στο command line του matlab να τρέξω τις ίδιες ακριβώς εντολές, με την ίδια ακριβώς σειρά και μου τρέχει κανονικότατα. Έχει κανείς καμιά ιδέα τι παίζει :-\ ??? Η συνάρτησή σου f, είναι sym, δηλαδή expression, ενώ η Norm δέχεται σαν ορίσματα διανύσματα.Πρέπει με κάποιο τρόπο να περάσεις την κανονική συνάρτηση f μέσα στην συνάρτησή σου.Δηλαδή με κανονικό πεδίο ορισμού,ας πούμε x = linspace(-1:1:400), αντί για syms x Title: Re: Matlab βοηθεια Post by: Δον on May 02, 2013, 10:28:18 am Η συνάρτησή σου f, είναι sym, δηλαδή expression, ενώ η Norm δέχεται σαν ορίσματα διανύσματα.Πρέπει με κάποιο τρόπο να περάσεις την κανονική συνάρτηση f μέσα στην συνάρτησή σου.Δηλαδή με κανονικό πεδίο ορισμού,ας πούμε x = linspace(-1:1:400), αντί για syms x Μααα, μέσα στη norm δεν έχω την f αλλά την gradf συνάρτηση η οποία δεν είναι sym :S Title: Re: Matlab βοηθεια Post by: fugiFOX on May 02, 2013, 11:32:22 am Δεν την έχω δουλέψει αλλά έτσι πως βλέπω τον κώδικα νομίζω και η gradf symbolic ειναι
Title: Re: Matlab βοηθεια Post by: Δον on May 02, 2013, 11:40:02 am Δεν την έχω δουλέψει αλλά έτσι πως βλέπω τον κώδικα νομίζω και η gradf symbolic ειναι Έστω ότι είναι symbolic. Στην 1η επανάληψη της while τρέχει κανονικά! Αυτό είναι που με τρελαίνει. >:( Έχω αφήσει μια εντολή χωρίς ερωτηματικό για να βλέπω τι υπολογίζει και στην 1η επανάληψη την υπολογίζει . Μετά μόλις πάει να υπολογίσει το νέο norm κρασάρει. Και το δοκίμασα με τον ευκλείδιο τύπο sqrt(χ^2 + y^2) και μου λέει ότι το ge ( >= ) δεν υποστηρίζει και αυτό symbolic. Μα αφού βάζω τιμές(?)! >:( >:( (Ευχαριστώ για την ανταπόκριση πάντως :) ) Title: Re: Matlab βοηθεια Post by: fugiFOX on May 02, 2013, 18:26:59 pm κάνε debugging by step και δες κάθε φορά τι input μπαίνει.
έτσι θα το βρεις το σφάλμα. π.χ. όταν ο δείκτης του debugging είναι 1 βήμα πριν το while τρέξε στο command window to gradf(xk(1),xk(2)),2 και δες τι δίνει ως αποτέλεσμα (αυτό θα ειναι το input του norm() ) Title: Re: Matlab βοηθεια Post by: edenaxas on May 02, 2013, 19:23:34 pm γιατι δεν το τρεχεις σε debug να δεις τι παιζει αναλυτικα? 8))Title: Re: Matlab βοηθεια Post by: Δον on May 02, 2013, 22:15:09 pm γιατι δεν το τρεχεις σε debug να δεις τι παιζει αναλυτικα? 8))A καλά τώρα το είδα ( σόρρυ :-\ ) Θα το δοκιμάσω :D Title: Re: Matlab βοηθεια Post by: christineL on May 04, 2013, 12:18:32 pm Πώς γίνεται όταν μια συνάρτηση επιστρέφει ως αποτέλεσμα ένα τεράστιο κλάσμα αυτό να το κάνω έναν απλό αριθμό; Δοκίμασα με FORMAT αλλά δεν γίνεται τίποτα,εκτός και αν το χρησιμοποιώ λάθος.
Title: Re: Matlab βοηθεια Post by: edenaxas on May 04, 2013, 12:32:39 pm Πώς γίνεται όταν μια συνάρτηση επιστρέφει ως αποτέλεσμα ένα τεράστιο κλάσμα αυτό να το κάνω έναν απλό αριθμό; Δοκίμασα με FORMAT αλλά δεν γίνεται τίποτα,εκτός και αν το χρησιμοποιώ λάθος. Τι εννοεις απλο αριθμο?integer? ή απλα να τον εκτυπωσεις σε απλο format? Title: Re: Matlab βοηθεια Post by: christineL on May 04, 2013, 12:37:32 pm Το δεύτερο. Απλά να φαίνεται πιο καθαρά ποιος αριθμός είναι και να μην χρειάζεται να κάνω τι διαίρεση του κλάσματος.
Title: Re: Matlab βοηθεια Post by: edenaxas on May 04, 2013, 12:46:36 pm disp(sprintf('%.3f', number));
όπου number ο αριθμος σου αν αλλαξεις το 3 και βαλεις 4 αντι για 3 δεκαδικα θα δειχνει 4 Title: Re: Matlab βοηθεια Post by: christineL on May 04, 2013, 12:50:46 pm Ευχαριστώ ευχαριστώ έγινε ! :)
Title: Re: Matlab βοηθεια Post by: g on August 24, 2013, 15:22:03 pm Σε έκδοση R2011a σε windows7, εμφανίζεται πρόβλημα στην τιτλοφόρηση γραφήματος στα ελληνικά. Οταν εισάγεται το όνομα, τα γράμματα εμφανίζονται κανονικά αλλά μετά την αποθήκευση της επιλογής βγαίνουν εκείνα τα περίεργα σαν όταν υπάρχει μπέρδεμα με τις κωδικοποιήσεις ...Εχει κανείς καμία ιδέα ?
Πχ (http://s24.postimg.org/nkd1o0f1x/Capture.jpg) Title: Re: Matlab βοηθεια Post by: il capitano on August 24, 2013, 15:54:18 pm Εκτός απ' τα προφανή, να γράφεις τους τίτλους στα Αγγλικά ή σε Greeklish μπορείς να χρησιμοποιείς τους χαρακτήρες TeX (αν λέγονται έτσι, δεν είμαι και σίγουρος :P)... ftp://ftp.ams.org/pub/tex/doc/amsmath/short-math-guide.pdf στην σελίδα 5..
Αν π.χ. ήθελες να γράψεις: title('Τίτλος') γράφεις: title('\Tau\iota\tau\lambda\omikron\varsigma') Δεν έχω βρει κάποιον πιο απλό τρόπο, αν και φαντάζομαι ότι θα υπάρχει... Title: Re: Matlab βοηθεια Post by: Exomag on August 24, 2013, 17:24:54 pm Δες και αυτό (http://kb.mit.edu/confluence/pages/viewpage.action?pageId=3907492), μήπως βοηθήσει.
Title: Re: Matlab βοηθεια Post by: dpa on August 24, 2013, 20:39:47 pm χρησιμοποίησε τον plot editor
http://www.mathworks.com/help/matlab/creating_plots/adding-axis-labels-to-graphs.html#f0-33426 για να αλλάξεις τον τιτλο στο γράφημα σου. Title: Re: Matlab βοηθεια Post by: Sand on December 21, 2013, 17:46:26 pm Μήπως ξέρει κανείς ποια είναι η αντίστοιχη εντολή του stepinfo για ράμπα; Θέλω ουσιαστικά να βγάλω τον χρόνο ανόδου, τον χρόνο αποκατάστασης και την υπερύψωση από την απόκριση ενός συστήματος. Title: Re: Matlab βοηθεια Post by: τσαι-borg on December 21, 2013, 17:59:36 pm Εχεις κάνει μέσω simulink τα διαγράμματα?
Τεσπά, ένας τρόπος είναι αυτός: s=tf('s'); accepted=zeros(length(k),1); for i=1:length(k) sys(i)=k(i)*(s+0.3)/((s*(s+0.1)*(s+10))); sysc(i)=feedback(sys(i),1); S=stepinfo(sysc(i)); tr=S.RiseTime; ovr=S.Overshoot; Μη δίνεις σημασία στο k, ήταν μια παράμετρος που χρησιμοποίησα εγώ. Title: Re: Matlab βοηθεια Post by: Sand on December 21, 2013, 22:52:19 pm Εχεις κάνει μέσω simulink τα διαγράμματα? Τεσπά, ένας τρόπος είναι αυτός: s=tf('s'); accepted=zeros(length(k),1); for i=1:length(k) sys(i)=k(i)*(s+0.3)/((s*(s+0.1)*(s+10))); sysc(i)=feedback(sys(i),1); S=stepinfo(sysc(i)); tr=S.RiseTime; ovr=S.Overshoot; Μη δίνεις σημασία στο k, ήταν μια παράμετρος που χρησιμοποίησα εγώ. Ευχαριστώ για την απάντηση. Ναι, έχω τα διαγράμματα μέσω Simulink, γι' αυτό θα με βόλευε περισσότερο κάτι που παίρνει ως όρισμα τα resonse data και την τελική τιμή που θέλω να παίρνει το μέγεθος που μελετάω κάθε φορά. Το lsiminfo(y,t,yfinal) δεν κάνει γι' αυτή την περίπτωση; Title: Re: Matlab βοηθεια Post by: teslaaaa on December 22, 2013, 02:12:35 am Ποια εντολή χρησιμοποιώ για να μετατρέψω ένα συμβολικό σύστημα εξισώσεων σε μορφή πίνακα ?
Title: Re: Matlab βοηθεια Post by: dpa on December 22, 2013, 13:12:49 pm http://www.mathworks.com/help/symbolic/equationstomatrix.html
Title: Re: Matlab βοηθεια Post by: teslaaaa on December 22, 2013, 15:22:43 pm Και εγώ αυτην είχα βρει αλλά δε μου την αναγνωρίζει ,δν μ τη βγάζει καν στον function browser..καμιά άλλη ιδέα?έχω matlab r2011a
Title: Re: Matlab βοηθεια Post by: Eru lluvatar on December 22, 2013, 17:00:44 pm μπορείς να κάνεις και το ανάποδο αφού δεν την έχει στο r2011
http://www.mathworks.ch/ch/help/symbolic/subs.html Title: Re: Matlab βοηθεια Post by: dpa on December 23, 2013, 02:13:27 am Και εγώ αυτην είχα βρει αλλά δε μου την αναγνωρίζει ,δν μ τη βγάζει καν στον function browser..καμιά άλλη ιδέα?έχω matlab r2011a Σωστά,την αναφέρει στο R2013...http://www.mathworks.com/help/symbolic/equationstomatrix.html δες αυτό: είναι BSD License: http://www.mathworks.com/matlabcentral/fileexchange/29889-equation-to-matrix-form Equation to matrix form by Jon André Adsersen 02 Jan 2011 Function that converts a symbolic linear equation to vector form. νομίζω ότι δεν θα έχει πρόβλημα στο R2011 Title: Re: Matlab βοηθεια Post by: teslaaaa on December 23, 2013, 16:20:19 pm Και εγώ αυτην είχα βρει αλλά δε μου την αναγνωρίζει ,δν μ τη βγάζει καν στον function browser..καμιά άλλη ιδέα?έχω matlab r2011a Σωστά,την αναφέρει στο R2013...http://www.mathworks.com/help/symbolic/equationstomatrix.html δες αυτό: είναι BSD License: http://www.mathworks.com/matlabcentral/fileexchange/29889-equation-to-matrix-form Equation to matrix form by Jon André Adsersen 02 Jan 2011 Function that converts a symbolic linear equation to vector form. νομίζω ότι δεν θα έχει πρόβλημα στο R2011 μπορείς να κάνεις και το ανάποδο αφού δεν την έχει στο r2011 θενξ και σε σένα που απάντησες :)http://www.mathworks.ch/ch/help/symbolic/subs.html Title: Re: Matlab βοηθεια Post by: Tracy_McGrady on December 13, 2015, 17:47:23 pm Υο,
ξέρει κανεις αν μπορώ να βρώ κάποιο package απο την matlab στο διαδίκτυο...θελω χρηση webcam αλλά δε το έχει και πρέπει να το κατεβάσω με mathwork account. Title: Re: Matlab βοηθεια Post by: teslaaaa on December 13, 2015, 18:43:36 pm Υο, openCV :Dξέρει κανεις αν μπορώ να βρώ κάποιο package απο την matlab στο διαδίκτυο...θελω χρηση webcam αλλά δε το έχει και πρέπει να το κατεβάσω με mathwork account. Title: Re: Matlab βοηθεια Post by: Μουργόλυκος on December 13, 2015, 18:50:27 pm Πως λυνουμε την [tanh(x)]^2=a+jb? a, b γνωστά
Title: Re: Matlab βοηθεια Post by: vlad on December 13, 2015, 19:00:52 pm Πως λυνουμε την [tanh(x)]^2=a+jb? a, b γνωστά syms x;solve(tanh(x)*tanh(x)==a+bj,x); Title: Re: Matlab βοηθεια Post by: ioanoiko on March 31, 2016, 14:06:19 pm Κατέβασα το matlab R2016 και μόλις πατάω να κάνει setup μου βγάζει : "Error finding installer class. An exception occured while looking for class." Τί φάση?
Title: Re: Matlab βοηθεια Post by: Apostolof on March 31, 2016, 18:37:29 pm Κατέβασα το matlab R2016 και μόλις πατάω να κάνει setup μου βγάζει : "Error finding installer class. An exception occured while looking for class." Τί φάση? Μήπως έχεις ελληνικά γράμματα στο path σου; Title: Re: Matlab βοηθεια Post by: ioanoiko on April 01, 2016, 14:43:01 pm Μήπως έχεις ελληνικά γράμματα στο path σου; χίλια ευχαριστώ!! στο path το όνομα του user ήταν στα ελληνικά!! |