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

for loop kai cpu


tsoler

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

Δημοσ.

gia sas! exw grapsei ena programma (se MATLAB) sto opoio xrisimopoiw ena for loop gia na stelnw alla kai na diavazw apo thn seiriakh. mesw enos diakopth ksekinaw h stamataw to loop. orismenes fores omws otan stamataw thn ektelesh tou loop parathrw apo ton task manager oti to programma mou apasxolei thn cpu sto 100% xwris ekeinh thn stigmh na kanei tpt. mhpws kserei ti mporei na sumbainei? thanks

Δημοσ.

Δεν γνωρίζω να απαντήσω ακριβώς σε αυτό που ρωτάς,πάντως καλό είναι σε matlab να αποφεύγονται τα for-loops,όπου αυτό είναι εφικτό βέβαια.Αν θέλεις,πόσταρε τον συγκεκριμένο μέρος του κώδικα σου.

Δημοσ.
πάντως καλό είναι σε matlab να αποφεύγονται τα for-loops,όπου αυτό είναι εφικτό βέβαια.Αν θέλεις,πόσταρε τον συγκεκριμένο μέρος του κώδικα σου.

 

Aπό περιέργεια, μήπως θα μπορούσες να μας πείς γιατι πιστεύεις κάτι τέτοιο για τα κακόμοιρα for loops?

Δημοσ.

loipon, na kai o kwdikas....to radiobutton einai o diakopths mou pou brisketai se ena gui pou exw ftiaksei.

 

 

 

function radiobutton1_Callback(hObject, eventdata, handles)

% hObject handle to radiobutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global X;

global button_state

global tim

% Hint: get(hObject,'Value') returns toggle state of radiobutton1

button_state = get(handles.radiobutton1,'Value');

if button_state == get(handles.radiobutton1,'Max')

 

set(X,'timeout',0.5);

fopen(X);

fprintf(X,'\0U');

tim=timer;

set(tim,'ExecutionMode','fixedSpacing','TimerFcn',{@mycallback, handles},'Period',5);

start(tim);

 

tic

for i=0:inf

if button_state==get(handles.radiobutton1,'Min')

break

else

fprintf(X,'83J');

end

if button_state==get(handles.radiobutton1,'Min')

break

else

set(handles.activex4,'value',str2num(fgetl(X))*0.4647);

end

if button_state==get(handles.radiobutton1,'Min')

break

else

fprintf(X,'95J');

end

if button_state==get(handles.radiobutton1,'Min')

break

else

set(handles.activex5,'value',str2num(fgetl(X))*0.4647);

end

if button_state==get(handles.radiobutton1,'Min')

break

else

fprintf(X,'89J');

end

if button_state==get(handles.radiobutton1,'Min')

break

else

set(handles.activex6,'value',str2num(fgetl(X))*0.4647);

end

if button_state==get(handles.radiobutton1,'Min')

break

else

fprintf(X,'77J');

end

if button_state==get(handles.radiobutton1,'Min')

break

else

set(handles.activex7,'value',str2num(fgetl(X))*0.4647);

end

t=toc;

fprintf('%0.0f seconds',t);

count=i

pause(0.3)

 

 

elseif button_state == get(handles.radiobutton1,'Min')

stop(tim);

set(handles.activex4,'Value',0);

set(handles.activex5,'Value',0);

set(handles.activex6,'Value',0);

set(handles.activex7,'Value',0);

fprintf(X,'66J0N');

fprintf(X,'61J0N');

set(handles.activex1,'Xpos',0);

set(handles.activex1,'Ypos',0);

set(handles.activex1,'Zpos',60);

set(handles.oopic,'string','tsol');

fprintf(X,'\A');

fclose(X)

 

end

 

 

function mycallback(obj,event, handles)

global X

global tim

for i=0:2

fprintf(X,'71J');

set(handles.activex2,'needlevalue',str2num(fgetl(X))*0.5149);

fprintf(X,'74J');

set(handles.activex3,'needlevalue',str2num(fgetl(X))*0.5015);

 

pause(0.2);

end

Δημοσ.
Aπό περιέργεια, μήπως θα μπορούσες να μας πείς γιατι πιστεύεις κάτι τέτοιο για τα κακόμοιρα for loops?

Τρέξε τα εξής 2 scripts:

1)k(1:10^6)=1:10^6;plot(k);

2)for i=1:10^6

k(i)=i;

end

plot(k);

Στο δεύτερο θα έχεις πιει καφέ,θα έχει φάει,θα κοιμηθείς και αν έχεις γερό μηχάνημα,όταν ξυπνήσεις παίζει να είσαι τυχερός και να έχει τελειώσει. :P

 

Edit: Ξέχασα να πω,αν και είναι προφανές,ότι τα 2 αυτά scripts κάνουν το ίδιο πράγμα.

Δημοσ.

Προφανός, αυτό που δεν κατέστησε σαφές ο NoD είναι ότι τα for-loops καλό είναι να αποφευγονταί στο MatLab, και όχι γενικά στον προγραματισμό.

 

Το MLab, είναι έτσι φτιαγμένο, ώστε όλη η δύναμη του να είναι στις πράξεις πινάκων και όχι στα For-Loops...

Δημοσ.

Ρε παιδιά διαβάζετε όλα τα posts και διαβάζετε τα καλά.Φίλε drm αν διαβάσεις το αρχικό μου post θα δεις ότι τονίζω για matlab:

...πάντως καλό είναι σε matlab[/u'] να αποφεύγονται τα for-loops...

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

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