Jump to content

Erotisi MATLAB


OratIos
 Κοινοποίηση

Recommended Posts

Exo 2 programz sthn matlab !!!To ena einai mia synarthsh (rowsum(A))to exo ftia3ei i opoia pernei san orisma enan pinaka A kai ethroizei oles tis grammes toy kai tis vazei se enan pinaka Y..........

 

To 2o programma prepei na xrhsimopoihso thn rowsum(A) thn opoia thn kalo kanonika mesa sto 2o programma kai thelo na paro ta stoixeia toy pinaka Y o opoios trexei mesa sto 1o!!!Otan loipon pao na paro ta Y(i) moy leei oti den exei oristei pinakas Y........

 

Profanos o Y trexei topika mesa sthn rowsum ektyponei ta stoixeia k meta svinetai !!Pws tha ginei na ton diathrhsw???

 

 

Eyxaristo!!

Link to comment
Share on other sites

Σίγουρα θα υπάρχει και καλύτερος τρόπος,στα γρήγορα μου έρχεται η εξής λύση.

Μπορείς να τα σώζεις σε ένα αρχείο και μετα να τα διαβάζεις από εκεί.

save x.dat x -ascii

load x.dat

 

Φιλικά

V.

Opinions are like assholes.... everybody has one!
Link to comment
Share on other sites

Δεν πολυκατάλαβα τι θες, αλλά δοκίμασε να φτιάξεις τη rowsum σε ένα .m file

και να το αποθηκεύσεις σαν rowsum.m

Μετά κάνε set path τον φάκελο με το .m file και τέλος δοκίμασε να την καλέσεις πάλι.

Link to comment
Share on other sites

ASKISI 1:

 

Να γραφεί συνάρτηση rowsum του Matlab/Octave που να υπολογίζει τα αθροίσματα των γραμμών ενός δισδιάστατου πίνακα A. Η συνάρτηση σας θα δέχεται μοναδική παράμετρο εισόδου τον πίνακα A, θα υπολογίζει τον αριθμό των γραμμών Μ και των στηλών Ν, και θα επιστρέφει το διάνυσμα y στο οποίο y(i) είναι το άθροισμα των στοιχείων της γραμμής i του A για i=1,2,...,M.

 

ASKISI 2:

 

Να γραφεί πρόγραμμα Matlab/Octave που να διαβάζει ένα πίνακα A στην είσοδο, να καλεί τη συνάρτηση rowsum της εργασίας 3Α για τον πίνακα A και στη συνέχεια να υπολογίζει το μέγιστο από τα αθροίσματα των γραμμών καθώς και την πρώτη θέση (γραμμή) στην οποία αυτό εμφανίζεται.

 

-----------------------------------------------------------------------------

 

KODIKAS 1:

 

function X=rowsum(A)

n=size(A,1);

m=size(A,2);

for i=1:n

 

Y(i)=sum(A(i,1:end));

 

end

 

disp('O arithmos twn grammwn toy pinaka A einai');disp(n);disp('eno o arithmos twn sthlwn toy A einai ');disp(m)

disp('Y=');disp(Y)

 

KODIKAS 2:

 

function x=askisi2(A)

thes=1;

n=size(A,1);

m=size(A,2);

rowsum(A);

maximum=Y(1);

for i=2:n

if maximum<Y(i)

maximum=Y(i);

thes=i;

end

end

disp('το μέγιστο από τα αθροίσματα των γραμμών είναι :');disp(maximum)

disp('H thesh sthn opoia vrisketai einai');disp(thes);disp('Stili toy Pinaka Y')

Link to comment
Share on other sites

gkr41

 

Ok den exo provlima se ayto!!!!Thn kalo kanonika,apla ston kodika 2 kalo thn rowsum(A) kai xreiazomai ton Y poy vrisketai ston kodika 1,apla den ton apothikeyei sthn matlab!!!

 

 

Mia lysi vevaia einai ayth poy proteine o filos nastis apla prepei na yparxei pio klasikos tropos gia na kratas mia metavlith!!!

Link to comment
Share on other sites

Αφού δεν τον έχεις ορίσει καν τον Υ ρε στην αρχή του προγράμματος :p
Link to comment
Share on other sites

Link to comment
Share on other sites

Alla kai pali ayto poy les den exei na kanei..........!!!otan trexo rowsum(A) enos dedomenoy pinakka A,moy ngazei kapoia dedomena!!

 

Otan meta patao sto parathyro ths Matlab n kai enter

 

??? Undefined function or variable 'n'.

 

diladi to n ypologizetai mesa sthn rowsum kai meta ,afoy ektelestei svinetai!!!Ego den tis thelo local tis metavlites,thelo na apothikeyontai.......!!!Ayto........

 

 

Thanx

Link to comment
Share on other sites

Τελικά έχεις πρόβλημα με τον Υ ή με την n; :wacko:
Link to comment
Share on other sites

Καταρχήν πρέπει να τον δηλώσεις τον πίνακα στην αρχή της rowsum.

Θες να έχει μέγεθος 1x2 και το δεύτερο στοιχείο να είναι ίσο με το n, αν κατάλαβα καλά. Οπότε πάει έτσι:

function X=rowsum(A)

n=size(A,1);
m=size(A,2);
Y=[1,n]

for i=1:n
Y(i)=sum(A(i,1:end));
end

disp('O arithmos twn grammwn toy pinaka A einai');disp(n);disp('eno o arithmos twn sthlwn toy A einai ');disp(m)
disp('Y=');disp(Y)

 

Aφού τρέξεις τη rowsum, υποθέτω πως ο πίνακας Y καταστρέφεται, με το που τελειώσει η εκτέλεσή της, γι αυτό και δε μπορείς να τον προσπελάσεις πάλι. Δοκίμασε να τις βάλεις και τις 2 στο ίδιο m file και να τις τρέξεις πακέταο.

Link to comment
Share on other sites

xmmmmmm nai akrivos etsi einai!!Apla epeidh einai diaforetikes ergasies den ti thelei sto idio m-file!!

Thn thelei thn proti san synarthsh kai thn deyterh na kalei thn proth synarthsh!!Alla etsi "xano" ton pinaka Y,opws katalaves.............!!!!

 

Tespa eyxaristo gia ton xrono soy.........

Link to comment
Share on other sites

Αν δε σε βιάζει ιδιαίτερα, μπορώ να ψάξω και να σου πω

 

EDIT

Δοκίμασε αυτό

 

function X=rowsum(A)

n=size(A,1);
m=size(A,2);
global Y=[1,n];

for i=1:n
Y(i)=sum(A(i,1:end));
end

disp('O arithmos twn grammwn toy pinaka A einai');disp(n);disp('eno o arithmos twn sthlwn toy A einai ');disp(m)
disp('Y=');disp(Y)

Link to comment
Share on other sites

Γενικά αν δε σε αφήσει να δηλώσεις τον Y σαν global, φτιάξε μια νέα μεταβλητή, δήλωσε εκείνη global και πιο κάτω κάντην ίση με Y. Μετά, στο άλλο m file, αντί για τον Y, κάλεσε εκείνη την μεταβλητή
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Επισκέπτης
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Κοινοποίηση

×
×
  • Create New...