# مباحث متفرقه برنامه نویسی > برنامه نویسی Matlab >  رفع مشکل برنامه در matlab

## sh.oveisi

دوستان من یک برنامه ای رو قبلا  اجرا کرده بودم ولی خطا نمیگرفت، ولی حالا همون برنامه رو روی کامپیوترم اجرا میکنم این خطا رو  از opengl میگیره
Error using opengl (line 171)
OpenGL incorrect input argument: save


Error in Main (line 10)
opengl('save','software')

باید چیکارش کنم، درست شه؟

----------


## rahnema1

سلام
ظاهرا شما دارید از یک نسخه قدیمی متلب استفاده می کنید اما این دستور مربوط به نسخه جدید هست شما در خط 10 به جای 
opengl('save','software')
از دستور زیر استفاده کنید
opengl software
اما ممکنه همین یک مورد هم نباشه. بهترین گزینه استفاده از نسخه جدید متلب هست

----------


## sh.oveisi

بله. ممنون. به خاطره همین موضوع بود، مشکل حل شد.

----------


## engineer72

سلام
من در شبیه سازی برنامه شبکه عصبی narx  در دستورpreparets به این خطا برخوردم.
Number of output signals does not match number of network's non-feedback outputs.
ممنون میشم اگر برای رفع این مشکل راهنماییم کنین.

----------


## چنگیزخان

باسلام کسی هست بتونه کمک کنه تااشکال این فایل رومتوجه بشم مربوط به متلبه؟
  clc
clear all
lambda=2;%nerkh vorude moshtari
mu1=1.5;%nerkh servis dahande aval
mu2=2;%nerkh servis dahande dovom
T=2000;%zaman shabih sazi
vt=[];%zaman vorud
st=[];%zaman shoroue servis dehi
et=[];%zaman khoroj
VT=[];%zaman vorud baray moshtari haye kharej shode
ST=[];%zaman shoroue servis dehi baray moshtari haye kharej shode
ET=[];%zaman khoroj baray moshtari haye kharej shode
events=[];%zaman roydad haye pishe ruo
eventsDis=[];%tozihe roydad hay pishru
%agar sefr bashad yani ruydade vorude moshtari has
%agar sefr bashad yani ruydade khoruje moshtari ast
eventNum=[];%shomareye moshtariye dargir dar ruydad
eventnumber=[];%shomareye servis dahande dargir dar roydad
saf=[];
flg1=0;%agar servis dahande aval khali bashad
flg2=0;%agar servise dahande dovom khali bashad
mt1=0;%majmue zaman haye ke sevis dahande aval khali ast
mt2=0;%majmue zaman hayi ke servis dahande dovom khalist
t0=0;
events(1)=exprnd(1/lambda);
eventsDis(1)=0;
eventNum(1)=1;%moshtari yek dargir voroud ast
eventnumber=0;
while t0<=T
    [nt,idx]=min(events);
    i=eventNum(idx);
    evDis=eventsDis(idx);%noe roydad dar evDis zakhire mishavad
    evnNd=eventnumber(idx);%shomare servis dahande
    delta=nt-t0;%faseley zamani beyne nazdik tarin roydadva zaman feli
    t0=nt;%zaman ra be rooz mikonim
    events(idx)=[];
    eventsDis(idx)=[];
    eventNum(idx)=[];
    eventnumber(idx)=[];
    switch evDis
        case 0
        vt(i)=t0;%zaman vorude moshtari i ra sabt mikonim
        if flg1==0&&flg2==0
            mt1=mt1+delta;%majmoe zaman khali bodan servis dahande aval ra be rooz mikonim
            mt2=mt2+delta;%majmoe zaman khali bodan servis dahande dovom ra be rooz mikonim
            s1=exprnd(1/mu1);%zaman khoroj moshtari ra tasadofi tolid mikonim
            events=[events,t0+s1];
            eventsDis=[eventsDis,1];
            eventNum=[eventNum,i];
            eventnumber=[eventnumber,st];
            flg1=1;%sevisdahande yek por mishavad
            st(i)=t0;
        else
            flg1=1;
            flg2=1;
            saf=[i,saf];
        end
        if flg1==1&&flg2==0
            mt1=mt1+delta;
            mt2=mt2+delta;
            s2=exprnd(1/mu2);
            events=[events,t0+s2];
            eventsDis=[eventsDis,1];
            eventNum=[eventNum,i];
            eventnumber=[eventnumber,st];
            flg2=1;%servis dahandeye dovom por mishavad
            st(i)=t0;
        else
            flg1=0;
            flg2=1;
            mt1=mt1+delta;
            mt2=mt2+delta;
            s1=exprnd(1/mu1);
            events=[events,t0+s1];
            eventDis=[eventDis,1];
            eventNum=[eventNum,i];
            eventnumber=[eventnumber,st];
            flg1=1;
            st(i)=t0;
        end
        tt=exprnd(1/lambda); 
        events=[events,t0+tt];
        eventsDis=[eventsDis,0];
        eventNum=[eventNum,i+1];
        eventnumber=[eventnumber,st];
        case 1
        et(i)=t0;
        flg1=0;
        VT=[VT,vt(i)];
        ST=[ST,st(i)];
        ET=[ET,et(i)];
        if numel(saf)>0
            j=saf(end);
            saf(end)=[];
            st(j)=t0;
            s1=exprnd(1/mu1);%zaman khoroj moshtari j ra tolid mikonim
            events=[events,t0+s1];
            eventsDis=[eventsDis,1];
            eventNum=[eventNum,j];
            eventnumber=[eventnumber,ST];
            flg1=1;%servis dahande ra por mikonim
        end
        case 2
        et(i)=t0;
        flg2=0;
        VT=[VT,vt(i)];
        ST=[ST,st(i)];
        ET=[ET,et(i)];
        if saf>0
            j=saf(end);
            saf(end)=[];
            st(j)=t0;
            s2=exprnd(1/mu2);
            events=[events,t0+s2];
            eventsDis=[eventsDis,1];
            eventNum=[eventNum,j];
            eventnumber=[eventnumber,ST];
            flg2=0;
        end
    end
end
wq=mean(ST-VT);
w=mean(ET-VT);
disp(['miyangin entezar moshtari dar saf:',num2str(wq)]);
disp(['ehtemal bikariye servise dahande aval:',num2str(mt1/ET(end))]);
disp(['Ehtemal bikariye servis dahande dovom:',num2str(mt2/ET(end))]);
disp(['Ehtemal in ke yek moshtari bedone entezar servis begirad:',num2str(sum((ST-VT)==0/numel(ST)))]);

  درلاین۳۳ ارورمیده!

----------


## alal2573

سلام
برنامه متلب زیر ران می کنم  این ارور Undefined function or variable 'c'. میده. میشه راهنماییم کنید؟

function [ vd , vo1 , vh1 , electrode_nodes ] = tanksim ( c ,  r , x , y , name )
% tanksim utilized the Eidors toolset to simulate
% the voltage measurements for a rectangular tank
% with a 10 electride linear array
ELEC_COUNT = 10;


meter_per_in = 0.0254 ; % meters per inch
salt_water_conductivity = 0.305 ; % ohms meter


tank_dims = [40,40] ; % elements
tank_mdl = mk_common_model ( 'f2s' , ELEC_COUNT ) ;


for ii = 1 : length ( tank_mdl . fwd_model . electrode )
tank_mdl . fwd_model . electrode ( ii ) . nodes = ii*2 + 10;
end
tank_mdl . fwd_model . gnd_node = ii*2 + 10;
tank_shape = [ 30 , 30 ] ; % in
tank_shape = tank_shape*meter_per_in ; % convert to meter
single_element_dim = tank_shape./tank_dims ;
element_conductivity = salt_water_conductivity/single_element_dim (1) ;
bkgnd = element_conductivity ;
fprintf (' Conductivity of Water : %f ' , bkgnd ) ;
img = mk_image ( tank_mdl . fwd_model , bkgnd ) ;
stim = mk_stim_patterns ( ELEC_COUNT , 1 , '{mono}' , '{mono}' ,{} ,1) ;
img . fwd_model . stimulation = stim ;
for i=1: ELEC_COUNT
img.fwd_model.stimulation(i).stim_pattern = [1,zeros(1,ELEC_COUNT-2) , -1]' ;
end
img . fwd_model . meas_select = [ 0 1 ] ;
img_h = img ;
img_o = img ;
select_fcn = Inline(sprintf('( x+%f ).ˆ2+(y+%f).ˆ2<r+%fˆ2' ,x,y,r),'x','y','z');
img_o . elem_data = ( bkgnd*1+(c-bkgnd)*elem_select(img.fwd_model,select_fcn));
winsize = [ 0 0 800 600] ;
f = figure('Position',winsize);
axis tight
img_h.fwd_solve.get_all_meas = 1 ;
vh= fwd_solve ( img_h ) ;
img_o.fwd_solve.get_all_meas = 1 ;
vo= fwd_solve ( img_o ) ;
img_v = rmfield ( img_o , ' elem data ' ) ;
% Show homoeneous image
a = subplot (231) ;
title ( a , ' Object Position ' ) ;
show_fem ( img_o ) ;
axis tight
% Show inhomoeneous image
b = subplot(232) ;
show_current ( img_o,vo.volt( : , 1 ) ) ;
axis tight
title ( b , ' Current Path Tank ' ) ;
axis ([ -1 ,1 , -1 ,1]) ;
% Show difference image
b = subplot(233) ;
img_v . node_data = vh . volt ( : , 1 )-vo . volt ( : , 1 ) ;
img_v . calc_colours . cb_shrink_move =[0.3 ,0.6 , + 0.03] ;
show_current ( img_o , vh . volt ( : , 1 )-vo . volt ( : , 1 ) ) ;
axis tight
title ( b , ' Change in Current Path ' ) ;
axis ([ -1 ,1 ; -1 ,1]) ;
electrode_nodes = [ img . fwd_model . electrode . nodes ] ;
vd = abs(vh.volt(electrode_nodes ,1) - vo.volt ( electrode_nodes , 1 ) ) ;
vh1 = vh.volt( electrode_nodes , 1 ) ;
vh1d = diff(flipud(vh1)) ;
vo1 = diff(flipud( vo.volt(electrode_nodes , 1 ) ) ) ;
title ( ' Differential Current Image ' ) ;
d= subplot ( 2 , 3 , [ 4 , 5 , 6 ] ) ;
bar( vo1-vh1d ) ;
axis tight
vd = vo1-vh1d ;
title ( d , ' Voltage Measured by Electrodes ' ) ;
ylabel ( ' Volts ' ) ;
xlabel ( ' Electrode ID# ' )
ylim ([ -5.5e-4 2.0e-4]) ;
fname = sprintf ( '%s-%dohm m-rod%0.2f-x-%1.1f-y%1.1f' , name , c , r , x , y ) ;
fname = strrep ( fname , ' . ' , ' ' ) ;
saveas ( f , sprintf ( '%s.png' , fname ) , 'png' ) ;
end

----------


## 98Bahar

سلام. یه سوال دارم واون اینکه میخواهم داخل کد متلب تعداد عملیاتهای کد رو بشمرم مثلا یه ماتریس سه در دو به یه ماتریس دو در یک ضرب شده تعداد عملیاتها ده تاست میخوام بدونم دستوری که این تعداد رو میشمره چیه؟خود مقاله دستور flops رو گفته ولی متلب این دستور رو نمیشناسه ممنون میشم کمکم کنید از چه دستوری استفاده کنم

----------


## power89

سلام
برنامه ای رو که قبلا نوشتم و اجرا هم شده الان با ورژن دیگه ای از متلب دارم اجرا میکنم به بعضی فانکشنها گیر میده. حالا میخاستم یا خطاش رفع بشه یا بگید بهم که با چه ورژنی این خطا دیگه بالا نمیاد که همون رو نصب کنم

----------

