خطايابي برنامه ها در متلب MATLAB

 

شما مي توانيد از راههاي زير، برنامه هايتان را خطايابي (debugging) نمائيد:
– برنامه را به چند بخش كوتاهتر تقسيم كنيد و هر بخش را جداگانه امتحان كنيد.
– نتايج محاسبات را در مراحل مياني جريان برنامه بنويسيد. اين كار را مي توانيــد بـه آسـاني بـا برداشتن semicolon (;) از انتهاي دستور محاسباتي ويا نوشتن نام متغير مورد نظر انجام دهيد. همچنين مي توانيد با قرار دادن disp در مكانهاي مشخصي از برنامه دريابيد كه برنامه تــا كجـابه پيش رفته است.
– تا حد امكان سعي كنيد كه از عمليات ماتريسي استفاده كنيد و در برنامه از تعداد حلقــه هـايي كه همان كار را انجام مي دهند بكاهيد.
– خطوط مورد شك برنامه را بطور جداگانه در محيط كار MATLAB اجــرا كنيـد (ترجيحـا” بـه كمك copy-paste) تا درستي و يا نادرستي محاسبه را دريابيد.
– دقت كنيد كه پيغام خطا روي چه سطري از برنامه داده شده است و بويژه دقت كنيد كه پيغــام خطا چه مي باشد و چه معنايي دارد.
– امكانات خطايابي موجود در نرم افزار را به كمك بگيريد.

پيغامهاي خطا
بيشترين حجم پيغامهاي خطايي كه شما در ابتداي كار با MATLAB دريافت مي كنيد مربوط بــه عمليات و جايگزيني هاي برداري/ماتريسي است. در اين بخش نحوه تصحيح برنامه را با اســتفاده از پيغامهاي خطاي دريافتي با ذكر يك مثال نشان داده مي شود.

در نظر بگيريد كه مي خواهيد سطح PVT را بر اســاس قـانون گـاز كـامل رسـم كنـيد. داده هـاي ورودي به برنامه محدوده هاي فشار و دما به صورت برداري هستند و برنامه بايد حجـم ويـژه گـاز را محاسبه نمايد و سپس سطح را رسم كند. بهتر است كه محاسبه حجم در يك تابع جداگان ه انجـام گيرد تا اگر بخواهيد محاسبه را با معادله حالت ديگري نيز تكــرار كنيـد، نيـازي بـه نوشـتن مجـدد برنامه اصلي نداشته باشيد و فقط تابع محاسبه حجم را تغيير دهيد. فرض كنيد كه برنامه اصلـي و تابع مورد نياز را در وهله اول به صورت زير ايجاد كرده ايد:

برنامه اصلي (main.m)
% Input p = input(‘ Pressure (bar) = ‘);

t = input(‘ Temperature (K) = ‘);
% Calculation

v = ideal(t,p*1e5);

% Plotting results

surf(p,vol,t)

(ideal.m) تابع
function v = ideal(t,p)
R = 8314; % Gas constant (J/kmol.K)

v = R*t/p; % Ideal gas law

حال در صورتي كه اين برنامه را اجرا كنيد، پيغام خطاي زير را دريافت مي كنيد:

» main

 Pressure (bar) = [1:10]

 Temperature (K) = 300:5:400

??? Error using ==> /

Matrix dimensions must agree.

Error in ==> C:\MATLABR11\work\ideal.m

On line 4  ==> v = R*t/p;                                % Ideal gas law

Error in ==> C:\MATLABR11\work\main.m

On line 6  ==> v = ideal(t,p*1e5);

 همانطور كه ملاحظه مي كنيد اشكال از سطر ٦ برنامه اصلي كه مربوط بــه مراجعـه بـه تـابع اسـت گرفته شده و در حقيقت خطا در سطر ٤ تابع و مشخصا” در نحوه تقسيم دو بردار t و p وجــود دارد.  به ياد بياوريد كه در عمليات ماتريسي، ابعاد ماتريسها بايد اجازه انجــام چنيـن عملـي را بدهـد.  در اينجا با دو بردار t و p نمي توان عمل تقسيم را انجام داد و اصولا” در اين مس ئله مقصـود از عبـارت بكار برده شده براي محاسبه حجم گاز كامل انجام محاسبه ماتريسي نمي باشــد.  بنـابراين سـطر ٤ تابع ideal.m به شكل زير تغيير داده مي شود (بكار بردن تقسيم عضو به عضو بجـاي ماتريسـي) تـا محاسبه حجم به صورت ماتريسي صورت نگيرد :

function v = ideal(t,p)

R = 8314; % Gas constant (J/kmol.K)

v = R*t./p; % Ideal gas law

اما با اجراي مجدد برنامه مي بينيد كه مشكل حل نشده است:

» main

 Pressure (bar) = [1:10]

 Temperature (K) = 300:5:400

??? Error using ==> ./

Matrix dimensions must agree.

Error in ==> C:\MATLABR11\work\ideal.m

On line 4  ==> v = R*t./p;                               % Ideal gas law

Error in ==> C:\MATLABR11\work\main.m

On line 6  ==> v = ideal(t,p*1e5);

 اگر تعداد مولفه هاي بردارهاي t و p را در محيط كار MATLAB بخواهيم:

» length(p) ans =

    10

» length(t) ans =

    21

 ديده مي شود كه اين دو بردار هم اندازه نيستند و بنابراين عمليات عضو به عضو نيز نمــي تـوان بـر روي آن دو انجام داد.  در اينجا چاره اي نيست جز آنكه از يك حلقه در محاسبات استفاده نمـائيد و مقادير حجم ويژه را بر حسب دما، هر بار در يك فشار معين، محاسبه نمائيد:

function v = ideal(t,p)

R = 8314; % Gas constant (J/kmol.K)

for k = 1:length(p)

   v(:,k) = R*t/p(k);   % Ideal gas law

end

اما اين بار نيز با پيغام خطا مواجه مي شويد:

» main

 Pressure (bar) = [1:10]

 Temperature (K) = 300:5:400

???  In an assignment  A(:,matrix) = B, the number of elements in the subscript of A and the number of columns in B must be the same.

Error in ==> C:\MATLABR11\work\ideal.m

On line 5  ==>    v(:,k) = R*t/p(k);                              % Ideal gas law

Error in ==> C:\MATLABR11\work\main.m

On line 6  ==> v = ideal(t,p*1e5);

 توجه كنيد كه بردار دما يك بردار سطري است و در نتيجه سمت راست عبارت محاسبه حجم يــك بردار سطري خواهد بود.  اين در حالي است كه در سمت چپ همان عبارت يك بردار ســتوني قـرار دارد و پيغام خطا نيز از همينجا ناشي مي شود.  بنابراين تابع ideal.m بايد ب ه شـكل زيـر تصحيـح گردد:

function v = ideal(t,p)

R = 8314; % Gas constant (J/kmol.K)

for k = 1:length(p)   

    v(k,:) = R*t/p(k); % Ideal gas law

end

اين بار با اجرا كردن برنامه اصلي پيغام زير را مشاهده مي كنيد:

» main  Pressure (bar) = [1:10]  Temperature (K) = 300:5:400

??? Undefined function or variable ‘vol’.

Error in ==> C:\MATLABR11\work\main.m

On line 9  ==> surf(p,vol,t)

 

باز هم پيغام خطا!  اما اگر دقت كنيد مي بينيد كه اين بار پيغام خطا مربوط به تابع ideal.m نيست بلكه خطا از دستور مربوط به رسم داده ها گرفته شده است.  در حقيقت تابع كار خود را بــه خوبـي انجام داده و رفع اشكال شده است.  خطاي اين دفعه مربوط به اشتباه در نام متغير اسـت.  متغـير v كه قبلا” تعريف شده است اشتباها” در دستور surf با نام vol بكار برده شده اســت.  ولـي vol قبـلا” تعريف نشده است و در نتيجه MATLAB آن را نمي شناسد.  پ س از تصحيـح ايـن سـطر، برنامـه اصلي به صورت زير خواهد بود:

% Input p = input(‘ Pressure (bar) = ‘); t = input(‘ Temperature (K) = ‘);

% Calculation v = ideal(t,p*1e5); % Plotting results surf(p,v,t)  

:اجراي اين برنامه پيغام زير را به دنبال خواهد داشت

» main  Pressure (bar) = [1:10]

 Temperature (K) = 300:5:400

??? Error using ==> surface Matrix dimensions must agree.

Error in ==> C:\MATLABR11\toolbox\matlab\graph3d\surf.m

On line 59  ==>     hh = surface(varargin{:}); Error in ==> C:\MATLABR11\work\main.m

On line 9  ==> surf(p,v,t)

 

خطاي اين دفعه باز هم مربوط به دستور surf و اين بار در باره نحوه معرفي آرايه ها به آن است.  بـا مراجعه به توضيحات (help) اين دستـور مشخص مي گردد كه آرگومان هاي اول و دوم ايـن دسـتور مي توانند بردار باشند ولي آرگومان سـوم بايد ماتريس باشد.  در اين حالت طول آرگومانــهاي اول و دوم بايد به ترتيب برابر با تعداد ستونها و سطرهاي آرگومان سوم باشد.  لــذا طبـق ايـن توضيحـات متغير v بايد آرگومان سوم دستور surf باشد و ضمنا” با مشاهده ابعاد اين متغير:

» size(v) ans =

    10    21

 مي توانيد بگوئيد كه آرگومان اول بايد بردار t و آرگومان دوم بــايد بـردار p باشـد.  بنـابراين برنامـه اصلي بايد به شكل زير اصلاح گردد:

% Input

p = input(‘ Pressure (bar) = ‘);

t = input(‘ Temperature (K) = ‘);

% Calculation v = ideal(t,p*1e5);

% Plotting results

surf(t,p,v)

xlabel(‘T (K)’)

ylabel(‘P (bar)’)

zlabel(‘V (m^3/kmol)’)

view(135,30)

در صورت اجراي برنامه نتيجه نهايي را خواهيد ديد.

» main

 Pressure (bar) = [1:10]

 Temperature (K) = 300:5:400

 

 

 

198 دیدگاه دربارهٔ «خطايابي برنامه ها در متلب MATLAB»

  1. blank

    سلام خسته نباشید
    برنامه ام خطایی با عنوان :
    Error using evalfismex
    Illegal parameters in fisGaussianMF() –> sigma =
    0

    Error in evalfis (line 84)
    [output,IRR,ORR,ARR] = evalfismex(input, fis,
    numofpoints);

    Error in ANFIS (line 32)
    TestOut=evalfis(rr,fis2);
    میده ک نمیدونم دلیل این خطا چیه
    میشه راهنماییم کنید؟
    ممنون میشم

    1. blank

      سلام

      اين خطا يكي از خطاهاي رايج در هنگام آموزش انفيس در متلب مي باشد.

      دليل آن اين است كه مقدار سيگما در تابع عضويت يا همان membership function نمي تواند صفر باشد.

      چون انفيس يك الگوريتم آموزش سيستم فازي تاكاگي سوگونو مي باشد لذا ممكن است اين حالت اتفاق بيافتد.

      خوب براي حل اين خطا چه كار بايد بكنيم :

      1 – نوع تابعي كه با آن سييتم فازي را ساختيد عوض كنيد مثلا genfis1 را يه genfis2 تغيير دهيد.
      اين خطا بيشتر در genfis1 اتفاق مي افتد

      2 – تعداد نمونه هاي آموزش را كاهش دهيد.

      3 – قبل از اعمال داده ها به انفيس آنها را نرماليزه كنيد. دستورهاي نرماليزه كردن mapminamx و mapstd مي باشند.

      4 – نوع تابع عضويت در سيستم فازي را تغيير دهيد مثلا گايوسين را به مثلثي تبديل كنيد.

      5- تعداد توابع عضويت در سيستم فازي را كاهش دهيد.

  2. blank

    سلام برنامه من در اجرای کددستور زیر این خطا را می دهد لطفا راهنمایی کنید
    ruleview(fis);
    Error using &
    Not enough input arguments.

    Error in evalfis (line 84)
    [output,IRR,ORR,ARR] = evalfismex(input, fis,
    numofpoints);

    Error in ruleview (line 451)
    [v,irr,orr,arr]=evalfis(inputVector,fis, numPts);

    Error in ruleview (line 313)
    ruleview #update

  3. blank

    سلام ممنون که وقت گذاشتید
    clc;
    clear;
    close all;

    %%creat fis
    fisName=’pr’;
    fisType=’mamdani’;
    andMethod=’min’;
    orMethod=’max’;
    impMethod=’and’;
    aggMethod=’max’;
    defuzzMethod=’bisector’;
    fis=newfis(fisName,fisType,andMethod,orMethod,impMethod, aggMethod,defuzzMethod) ;
    %%add var
    % fis=addvar(fis,’varType’,’varName’,varBounds)
    fis=addvar(fis,’input’,’distance’,[0 1.5]);
    fis=addmf(fis,’input’,1,’ld’,’trapmf’,[-inf -inf 0.25 0.5]);
    fis=addmf(fis,’input’,1,’ad’,’trapmf’,[0.25 0.5 0.75 1 ]);
    fis=addmf(fis,’input’,1,’gd’,’trapmf’,[0.75 1 inf inf]);

    fis=addvar(fis,’input’,’psc’,[0 1]);
    fis=addmf(fis,’input’,2,’wl’,’trapmf’,[-inf -inf 0.001 0.25]);
    fis=addmf(fis,’input’,2,’al’,’trapmf’,[0.001 0.25 0.5 0.75]);
    fis=addmf(fis,’input’,2,’sl’,’trapmf’,[0.5 0.75 inf inf]);

    fis=addvar(fis,’output’,’best ‘,[0 1]);
    fis=addmf(fis,’output’,1,’vb’,’trapmf’,[-inf -inf 0.1 0.25]);
    fis=addmf(fis,’output’,1,’bb’,’trimf’,[0.1 0.25 0.35]);
    fis=addmf(fis,’output’,1,’ab’,’trimf’,[0.25 0.35 0.55]);
    fis=addmf(fis,’output’,1,’gb’,’trimf’,[0.35 0.55 0.75]);
    fis=addmf(fis,’output’,1,’vg’,’trapmf’,[0.55 0.75 inf inf]);

    %add rules
    rules=[1 1 2 1 1
    1 2 4 1 1
    1 3 5 1 1
    2 1 1 1 1
    2 2 3 1 1
    2 3 4 1 1
    3 1 1 1 1
    3 2 2 1 1
    3 3 2 1 1];
    fis=addrule(fis,rules);

      1. blank

        سلام مممنون از پاسختون
        من هم با متلب 2012 اجرا می کنم خطا نداره،
        ولی وقتی دستور (ruleview(fis را میزنم خطای بالا را میدهد
        نمی دونم چرا ؟تمام وقتمم گرفته؟
        ایا شما هم این دستور را میزنید Rull ها را نشان میدهد یا همین خطا را دارید؟
        لطفا راهنمایی کنید

    1. blank

      سلام بله امکانش هست

      بعد از ساخت سیستم فازی اگر اسمش fis باشد

      کافی است بنویسید

      y =evalfis(fis,x)

      با این دستور شما ورودی x را به سیستم فازی می دهید و خروجی را در ماتریس y ذخیره می کنید.

  4. blank

    سلام
    ایا وروردی های دستور evalfis می تواند از دو ماتریس تشکیل شود؟یعنی به جای دادن عدد خاص می توان از اعدادی که قبلا در یک ارایه یا ماتریس ذخیره شده استفاده کرد؟
    متشکرم

    1. blank

      سلام

      بله شما می توانید یک بار یک ماتریس را بدبد و سپس ماتریس بعدی

      مثلا فرض کنید دو ماتریس داریم به اسم های a1 و a2

      y1=evalfis(fis,a1)

      y2=evalfis(fis,a2)

      فقط حواستون باشد اعداد ورودی در بازه تغییرات ورودیهای سیستم فازی باشد.

      شاد باشید

  5. blank

    چگونه می توان یک مربع با قطر ۵۰۰m در متلب طراحی کرد که دارای ۲۰ نود باشد؟طوری که نود منبع و مقصد در ابتدا و انتهای قطر قرار داشته باشند؟
    باتشکر

  6. blank

    سلام
    بله قرار یک شبکه مش با تعداد ۴۰ نود یا گره تشکیل بدهم، که در یک فضا با قطر 500m باشد که گره اول و آخر در دو سر قطر قرار داشته باشند وسایر نودها در همین محدوده پخش شوند .من نودها را روی صفحه قرار دادم ولی نتوانستم قطر را برایش تعریف کنم.
    با تشکر

    1. blank

      سلام

      من قسمتی از کد را که ارسال کرده بودید ،دیدم. اما مشکلی در کد ندیدم.
      تنها کمکی که من میتونم بکنم این است که شما برای مختصات هر نود یا گره یک شرط بگذار که اگر تو این شرط صدق کرد، نود تولیدی قبول بشه وگرنه نود دیگری تولید بشه. در اینصورت نودهای تولیدی در یک محدوده تولید می شوند.
      این کمکی بود که من میتونستم بکنم
      شاد باشید

  7. blank

    این قسمتی از کد که برای تولید گره ها استفاده کردم که در واقع گره ها را ایجاد می کند ولی قطر را نتوانستم تعریف کنم

    clear all;
    clc;
    close all;
    tic;
    global n distanc distance ncand ci psc i j k
    %axis on;
    axis off; %hazf mehvar mokhtasat
    x1=0.15;
    y1=0.15;
    figure(1);
    hold on ;
    box on;
    grid off;
    % box off;
    plot (x1 , y1 , ‘r:o’, ‘MarkerSize’,20);
    text(x1,y1,’S’);
    hold on;
    % matris distance
    %*b=zeros(1,100);
    %*d=repmat(b,1,100);
    %tedad node
    n=input(‘n=’);
    ncand=input(‘ncand=’);%max tedad candid
    a.x=zeros(1,n);
    a.y=zeros(1,n);
    %m matris mokhtasat
    m=repmat(a,1,n);
    m(1).x=0.15;
    m(1).y=0.15;
    rng( 5);%ran num sabet
    for i=2:n-1
    hold on;
    %* disp(‘*****************************************************************************’);
    %* fprintf(‘node i= %d \n’,i);

    xx=rand(1);yy=rand(1);

    m(i).x=xx;
    m(i).y=yy;

    %* disp(‘coordinate=’ ); disp (m(i));

    plot (xx,yy,’k:o’, ‘MarkerSize’, 20 );
    %lable node
    labels = cellstr( num2str((i)) );

    text(xx,yy, labels);

    hold on;
    end
    xn=0.95;
    m(n).x=0.95;
    m(n).y=0.95;
    yn=0.95;
    plot (xn, yn , ‘r:o’, ‘MarkerSize’,20);
    text(xn,yn,’d’);
    hold on;
    o=zeros(1,1);
    p=zeros(1,1);
    q=zeros(1,1);
    c=zeros(1,1);
    distance=repmat(p,100,n);%matris distance for node to node
    distanc=repmat(o,1,n);%matris distanc to destinection
    %*dist=repmat(q,1,n);
    count=repmat(c,1,n);%%%%%%counter tedad neighber every node
    for i=1:n-1
    x2=m(i).x;
    y2=m(i).y;

    dn=((x2 – xn) .^ 2 + (y2 -yn) .^ 2);
    %* disp(‘***************************’);
    %* fprintf(‘node i= %d \n’,i);

    hn=abs(sqrt(dn));
    %* fprintf(‘dist to dest= %f \n’,hn);
    digits(3);
    distanc(i)=hn;
    end
    % distance is matris fasele node to node
    %* disp(‘***************************’);
    l=zeros(1,1);
    sp=repmat(l,1,n);%successprob

    x2=zeros(1,1);
    psc=repmat(x2,100,n);%sort sp base ci
    for i=1:n

    for j=1:n
    % j=j+1;
    x2 = m(j).x;
    y2 = m(j).y;
    d=((m(i).x – x2) .^ 2 + (m(i).y -y2) .^ 2);
    % *disp(‘***************************’);
    %* fprintf(‘node i,j= %d \n’,i);

    h=abs(sqrt(d));
    %ta 3 ragham ashar
    digits(3);
    %* fprintf(‘dist to dest= %f \n’,h);
    distance(i,j)=h;

    1. blank

      قابل انجام است.
      برای مش بندی متلب ابزاری دارد به نام PDEtool

      که ما یک محصل در همین رابطه داریم. در این ابزار شما می توانید مش بندی را به راحتی انجام دهید.

      لینک محصول

  8. blank

    با سلام
    ایراد برنامه زیر کجاست که ران نمیشود.باتشکر از راهنمایی دوستان گرامی
    clc,clear,close all
    f1t=1080;
    f1c=620;
    f2t=39;
    f2c=128;
    f6=89;
    syms sx s1 s2 t6
    step=pi/6;

    for theta=0:step:pi/2;
    m=cos(theta);
    n=sin(theta);
    my_sys=[s1-m^2*sx,s2-n^2*sx,t6-m*n*sx,(1/f1t-1/f1c)*s1+(1/f2t-1/f2c)*s2+(1/(f1t*f1c))*s1^2+(1/(f2t*f2c))*s2^2+t6^2/f6^2-(1/(f1t*f1c*f2t*f2c)^0.5)*s1*s2-1];
    Resp=solve(my_sys);
    Maxsx(:,1+theta/step)=double(Resp.sx);
    end

    theta=(0:step:2*pi).*(180/pi); % Theta in Degree
    plot(theta,MaxSx),xlabel(‘Theta’),ylabel(‘Max Stress’)

    1. blank

      سلام

      شما آخر برنامه رسم نمودار گذاشتید
      plot(theta,Maxsx),
      اما طول دو بردار ورودی دستور plot برابر نیست.
      در ضمن Maxsx ماتریس بدست می آید.
      کدت را مرحله به مرحله اجرا کن.

      ایران متلب

  9. blank

    سلام برای نمایش trans در مطلب برنامم این ارور رو میده
    please error at ohm:usage might be invalid matlab syntax
    please error at’0.0090′:usage might be invalid matlab syntax

    این هم برنامه کامل اگه میشه کمکم کنید

    To obtain equivalent circuit from tests 1
    To input individual winding impedances 2
    To input transformer equivalent impedance 3
    To quit 0
    Select number of menu –> 2
    Enter Transformer rated power in kVA, S = 150
    Enter rated low voltage in volts = 240
    Enter rated high voltage in volts = 2400
    Enter LV winding series impedance R1+j*X1 in ohm=0.002+j*.0045
    Enter HV winding series impedance R2+j*X2 in ohm=0.2+j*0.45
    Enter ‘lv’ within quotes for low side shunt branch or
    enter ‘hv’ within quotes for high side shunt branch -> ‘hv’
    Shunt resistance in ohm (if neglected enter inf) = 1000
    Shunt reactance in ohm (if neglected enter inf) = 1500
    Shunt branch ref. to LV side Shunt branch ref. to HV side
    Rc = 10.000 ohm Rc = 1000.000 ohm
    Xm = 15.000 ohm Xm = 1500.000 ohm
    Series branch ref. to LV side Series branch ref.to HV side
    Ze = 0.0040 + j 0.0090 ohm Ze = 0.4000 + j 0.90 ohm
    Hit return to continue
    Enter load kVA, S2 = 150
    Enter load power factor, pf = 0.8
    Enter ‘lg’ within quotes for lagging pf
    or ‘ld’ within quotes for leading pf -> ‘lg’
    Enter load terminal voltage in volt, V2 = 240
    Secondary load voltage = 240.000 V
    Secondary load current = 625.000 A at -36.87 degrees
    Current ref. to primary = 62.500 A at -36.87 degrees
    Primary no-load current = 2.949 A at -33.69 degrees
    Primary input current = 65.445 A at -36.73 degrees
    Primary input voltage = 2453.933 V at 0.70 degrees
    Voltage regulation = 2.247 percent
    Transformer efficiency = 94.249 percent
    Maximum efficiency is 95.238 %occurs at 288 kVA with 0.8pf

  10. blank

    سلام
    رابطه بازگشتی زیر راچگونه می توان در متلب کد نویسی کرد من در قسمت بازگشتی رابطه بعد مساوی( EAX(ci,d مشکل دارم نمی توانم کد بازگشتی این قسمت بنویسم.

    (EAX(s,d)=Ʃ EAX(ci,d)pi Π(1-pj
    بازه سیگما (i=1 …c) وبازه Π برابر j=1 ..i-1
    در حالتی که i=1 عبارت Π(1-pj)=1 می باشد.

    لطفا راهنمایی کنید
    با تشکر

    1. blank

      سلام

      من نمیتونم دقیق کد را خدمتتون بگم فقط راهنمایی که میتونم بکنم این است که همیشه برای نوشتن هر رابطه بازگشتی دو چیز لازم است

      اول مقدار دهی اولیه متغییری که قرار است در فرایند مقداردهی شود

      دوم استفاده از یک حلقه FOR برای نوشتن فرایند

      خوب شما بیا اول
      Π(1-pj)=1
      بگذار
      سسپس یک حلقه FOR بنویس
      برای نوشتن حاصلضرب چندین (Π) عدد در هم از دستور prod استفاده کن.

      1. blank

        سلام من هر چه کد می نویسم بازم خطا داره لطفا راهنمایی کنید خیلی ضروری است

        function e=followeax(c,d)
        global n distanc distance ncand ci psc sp maxCandidateset res zzz c
        %%%%% eax 1)

        for i=2:zzz(k)
        for j=1:i-1

        mult1=1;
        EE=mult1*(1-sp(1,j));
        end
        % rr= maxCandidateset(1,i);
        % eax=1+(followeax(maxCandidateset(i,1),n))*sp(i,1)*EE ;

        rr= maxCandidateset(1,i);
        eax=1+followeax(rr,n)*sp(rr,i)*EE ;
        end
        end

        end

        %h=maxCandidateset(c,1);
        % eax= 1+followeax(h,n)*sp(c,1);

        مرتب خطا میدهد
        با تشکر

  11. blank

    این خطا را می دهد
    Output argument “e” (and maybe others) not assigned
    during call to “D:\ms
    hoosh\term2\tez1\followeax.m>followeax”.

    Error in followeax (line 9)
    eax=1+followeax(rr,n)*psc(rr,i);

  12. blank

    function e=followeax(c,n)
    global n psc sp maxCandidateset zzz eax rr d
    %%%%% eax 0)

    %if(zzz(rr) > 1)

    % for i=2:zzz(k)
    for j=1:i-1

    mult1=1;
    EE=mult1*(1-psc(1,j));
    end
    % rr= maxCandidateset(1,i);
    % eax=1+(followeax(maxCandidateset(i,1),n))*sp(i,1)*EE ;

    rr= maxCandidateset(rr,i);
    eax=eax+1+followeax(rr,d)*psc(rr,i)*EE ;
    end
    end
    end

    %end

    %h=maxCandidateset(c,1);
    % eax= 1+followeax(h,n)*sp(c,1);
    با این کد نیز خطا می دهد

    In followeax (line 11)
    eax=eax+1+followeax(rr,d)*psc(rr,i);
    هر چه دقت می کنم نمی دونم بابت چیه؟

  13. blank

    سلام شما یکبار تست کنید برنامه رو متوجه خواهید شد

    To obtain equivalent circuit from tests 1
    To input individual winding impedances 2
    To input transformer equivalent impedance 3
    To quit 0
    Select number of menu –> 2
    Enter Transformer rated power in kVA, S = 150
    Enter rated low voltage in volts = 240
    Enter rated high voltage in volts = 2400
    Enter LV winding series impedance R1+j*X1 in ohm=0.002+j*.0045
    Enter HV winding series impedance R2+j*X2 in ohm=0.2+j*0.45
    Enter ‘lv’ within quotes for low side shunt branch or
    enter ‘hv’ within quotes for high side shunt branch -> ‘hv’
    Shunt resistance in ohm (if neglected enter inf) = 1000
    Shunt reactance in ohm (if neglected enter inf) = 1500
    Shunt branch ref. to LV side Shunt branch ref. to HV side
    Rc = 10.000 ohm Rc = 1000.000 ohm
    Xm = 15.000 ohm Xm = 1500.000 ohm
    Series branch ref. to LV side Series branch ref.to HV side
    Ze = 0.0040 + j 0.0090 ohm Ze = 0.4000 + j 0.90 ohm
    Hit return to continue
    Enter load kVA, S2 = 150
    Enter load power factor, pf = 0.8
    Enter ‘lg’ within quotes for lagging pf
    or ‘ld’ within quotes for leading pf -> ‘lg’
    Enter load terminal voltage in volt, V2 = 240
    Secondary load voltage = 240.000 V
    Secondary load current = 625.000 A at -36.87 degrees
    Current ref. to primary = 62.500 A at -36.87 degrees
    Primary no-load current = 2.949 A at -33.69 degrees
    Primary input current = 65.445 A at -36.73 degrees
    Primary input voltage = 2453.933 V at 0.70 degrees
    Voltage regulation = 2.247 percent
    Transformer efficiency = 94.249 percent
    Maximum efficiency is 95.238 %occurs at 288 kVA with 0.8pf

  14. blank

    سلام
    در کد زیر چرا لیبل محور x,yرا در نمودار در نظر نمی گیرد؟
    figure(2);
    axis on;

    % xlabel=(‘Number of node’);
    %ylabel=(‘excute time(sec)’);
    t=[0 2.74 3.09 5.38 6.57 7.63 8.50 9.72 10.52 11.37 12.48 14.74 16.24 16.84 17.02 ];
    %t1=[0 4.56 5.39 6.28 6.54 9.67 10.25 11.02 12.00 13.03 16.40 18.38 18.69 19 19.5];%t1base
    t1=[0 8 10.5 12.8 15 16.54 19.67 20.25 21.02 23.03 26.40 28.38 32.69 35 37];%baseaper
    number=[0 20 25 30 35 40 45 50 55 60 65 70 75 80 85];
    plot (number , t , ‘r:o’, number,t1,’b:+’);
    title(‘ Execution time for the case ncand = 5’);
    xlabel=(‘Number of node’);
    ylabel=(‘excute time(sec)’);
    hleg1=legend(‘Fuzzyor’,’Dpor’);
    set(hleg1,’Location’,’NorthWest’);
    با تشکر

    1. blank
      ایران متلب

      سلام

      خطا را به طور کامل قرار دهید.

      این خطا بیشتر موقعی ظاهر می شود که یک تابع تعداد ورودی ها کمتر از تعداد مدنظر بهش داده باشید

  15. blank

    سلام خسته نباشید, من یک سیستم فازی طراحی کردم ولی موقع وارد کردن تابع عضویت در بازه[0.1 0] در حالت گوسین این ارور رو میده invalid parametet vector.no change made to mf gaussmf
    دلیلش چیه باید چیکار کنم؟
    ممنون

    1. blank

      سلام
      تابع عضویت gaussmf نمی تواند مقدار صفر را به عنوان پارامتر بگیرد.
      نوع تابع عضویت را عوض کنید یا بازه را از 0 به 0.0001 تغییر دهید.

        1. blank

          و سوال دیگه ای هم که دارم, مشکلی نیست فقط در این بازه تابع تغییر کنه, و بقیه بازه ها همون گوسین بمونه؟

  16. blank

    سلام برنامه من این خطا رو می ده باید چیکار کنم؟
    Reference to non-existent field ‘busdata’.

    Error in Cost (line 46)
    [row,column]=find(mpc.busdata(:,1)==a);

    Error in pso_opfff (line 52)
    particle(i).cost=Cost(particle(i).position);

    1. blank

      سلام

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

  17. blank

    با سلام من یک کدنویسی متلب داشتم که وقتی به زوایه ها مقدار صفر میدهم برنامه بدون مشکل اجرا میشه اما وقتی زوایه را میخوام تغییر بدهم با این خطا مواجه میشم لطفا اگه امکان داره منو راهنمایی کنید این قسمتی از برنامه هست
    E11=39e9; E22=8.66e9; G12=3.8e9; G13=G12; G23=3.8e9; v12=0.28; v21=v12*E22/E11;
    teta=0;

    Q11=E11/(1-(v21*v12)); Q22=E22/(1-(v21*v12)); Q12=(v12)*E22/(1-(v21*v12)); Q66=G12; Q44=G23; Q55=G13;
    q_(1,1)=Q11*(cosd(teta))^4+Q22*(sind(teta))^4+2*(Q12+2*Q66)*((sind(teta))^2)*(cosd(teta))^2;
    q_(2,1)=(Q11+Q22-4*Q66)*sind(teta)^2*cosd(teta)^2+Q12(sind(teta)^4+cosd(teta)^4);
    این خطا را نشون میده وقتی زاویه را مقداری غیر از صفر میدم
    Subscript indices must either be real positive integers or logicals.

    1. blank

      سلام
      در متلب اندیس های آرایه ها باید حتما عددی بزرگتر از 0 و عدد صحیح باشند. اگر عددی غیر از این بگذارید متلب خطا می دهد.

      مثلا

      a =[3 5 6 8]

      اگر در برنامه داشته باشید
      a(0)
      یا
      a(1.5)
      متلب این خطا می دهد.
      شما باید برنامه را خط به خط اجرا کنید. یکی از این روشها breakpoint می باشد. می توانید برای توضیح بیشتر به فیلم سیر تا پیاز ایران متلب مراجعه کنید.
      لینک

  18. blank

    سلام
    من یه برنامه نوشیتم البته تو سیمولینک که از کنترل کننده فازی هم استفاده کردم ول موقع ران ارور میده.
    ” invalid FIS file name ”
    برای رفع این خطا چکار کنم؟

    1. blank

      سلام
      این خطا کاملا واضحه شما یا نام سیستم فازی را اشتباه وارد کردی
      یا سیستم فازی در مسیر متلب نیست که متلب نمیتونه پیداش کنه.
      احتمال مشکلی اول بیشتره.

  19. blank

    سلام.
    میخواستم بدونم در دستور evalfis پارامتر ORR نشان دهنده چی هست؟
    میشه لطفا جواب را به ایمیلم بفرستید؟
    ممنون.

    1. blank

      سلام
      خروجی ORR مقدار خروجی هر تابع عضویت membership function سیستم فازی شما می باشد. هر تعداد تابع عضویت در سیستمت داری به همون اندازه هم مقدار در ORR داری.
      اندازه آن numPts-by-numRules*L می باشد
      numPts همان تعداد نمونه ها در ورودی input دستور evalfis است.
      numRules تعداد قانونها rule
      L هم تعداد خروجی ها می باشد.
      برای توضیح بیشتر بسته جامع آموزش سیستم فازی را می تونید تهیه کنید.
      لینک بسته آموزش جامع فازی

  20. blank

    با سلام
    من یه برنامه بهینه سازی چند هدفه دارم که با الگوریتم ژنتیک چند هدفه میخوام ران کنم اما متاسفانه ران نمیشه با این ارور مواجه میشم
    Optimization running.
    Error running optimization.
    Not enough input arguments.
    لطفا راهنمایی کنید ممنون میشم

    1. blank

      با سلام
      این خطا هنگامی صادر می شود که شما دارید یک تابعی را فراخوانی می کنید اما ورودی ها را درست ندادید.
      مثلا تابع باید 4 تا ورودی بگیره شما اومدی 2 تا ورودی دادی.
      Not enough input argument یعنی همین .
      برو روی خطی که داره میگه این تابع را ورودی کم دادی و نحوه فراخونیت را درست کن.

      1. blank

        سلام
        من تا فردا باید فایل پروژه تحویل بدم نیاز به کمک خیلی سریع دارم خواهشا کسی میتونه کمکم کنه

  21. blank

    با سلام

    قسمت برنامه های متلب app ، برنامه optimazation اجرا نمیشه اصلا و ارور جاوا میده . مشکلش کجاست؟

  22. blank

    سلام دوستان به شدت به کمک نیاز دارم
    دو روز به دفاع من مونده و نرم افزار موقع run پیغام خطا میده
    میتونم تلفنی از کسی کمک بگیرم
    لطفا

  23. blank

    سلام من همون ابتدای برنامه ارور زیر رو دارم؟ میشه لطفا راهنمایی بفرمایید؟
    Error: File: bisct.m Line: 4 Column: 1
    Function definitions are not permitted in this context.

    برنامم هم اینه:
    clear
    clc
    c(i)=zeros(1,maxlter);
    function [cc(i),c(i)]= bisct(f,a,b,t,maxlter)
    fa=feval(f,a);fb=feval(f,b);e=eps;
    if fa*fb>0,
    disp(‘error’)
    end;
    n=0;
    for i=1:maxlter
    c(i)=(a+b)/2;fc=feval(f,c(i));
    if abs(fc)<t;
    break;
    elseif fa*fc<0
    b=c(i);fb=fc;
    else
    a=c(i);
    end
    n=n+1;
    end
    cc(i)=c(i);

    این پرانتزا و سمی کالونا تو فایل خودم درست ظاهر میشه

    1. blank

      سلام
      دوست عزیز شما نمی توانید در یک script ، یک تابع را تعریف کنید.
      یا می توانید تابع را در یک m فایل ذخیره کنید و در script فراخوانی کنید.
      یا script خود را به یک تابع تبدیل کنید. در این حالت می توانید در یک تابع، چندین تابع تعریف کنید.
      من روش یک را پیشنهاد می کنم چون دو مزیت دارد اول اینکه اگر به این تابع در برنامه دیگری نیاز شد به راحتی فراخوانی می کنید. دوم اینگه تعداد m فایل هایی که نوشتید زیاد می شود و به خودتون میگید دارم برنامه نویس میشما 🙂

    1. blank

      سلام و تشکر از شما برای سوالتون
      ما در متلب متغییرهایی از نوع ساختاری یا structure داریم. که طریقه فراخوانی آنها به صورت زیر است

      A.score

      A یک متغییر ساختاری است
      score فیلد آن است.

      حال اگر شما متغییری که ساختاری نباشد را به صورت یک متغییر ساختاری فراخوانی کنید این خطا ظاهر می شود.
      ممکن است در خط های قبلی فیلد این متغییر مقداردهی نشده باشد، چون در اینصورت به عنوان یک متغییر عادی می باشد.

      1. blank

        ممنون از پاسخگویی شما
        ارور از خط زیر گرفته میشه :
        dim=eldat.compute
        که قبلاglobal eldat تعریف شده
        که با توجه به این ،توضیحات شما درسته حالا برای رفع ارور باید چیکار کنم؟

        1. blank

          کاربر عزیز خدمتتون گفته شد که فیلد compute در متغییر eldat باید قبلش تعریف شده باشد نه متغییر عمومی تعریف شده باشد.
          البته در برنامه نویسی پیشرفته متلب زیر توابع ، یک تابع هم به این صورت فراخوانی می شود که به کد شما مربوط نمی باشد.

  24. blank

    با سلام برنامه من
    error Error in evalfis (line 83)
    [output,IRR,ORR,ARR] = evalfismex(input, fis, numofpoints);

    Error in mywangmen (line 107)
    yy= evalfis(C,N);
    دو تا ورودی دارم که هرکدوم 2000 نقطه داره و C یک ماتریس 2000*2 می باشد چه مشکلی داره 2000 سطر و دو ستون

    1. blank

      دستور evalfis برای دادن ورودی به سیستم فازی و گرفتن جواب یا همان خروجی از آن می باشد.
      برای آموزش کامل می توانید بسته آموزش فازی یا فیلم آموزش فازی نوع یک یا فیلم آموزش نروفازی را تهیه کنید.
      در دستور evalfis ، ورودی اول داده های ورودی به سیستم فازی می باشد و ورودی دوم متغییر fis می باشد.

  25. blank

    با سلام
    میخواستم بدونم که در دستور solve چجوری یک معادله پارامتری رو حل کنم؟
    و همچنین اگر در این دستور از متغیرهایی که از پیش تعریف شده و مقداری بر حسب یک سری پارامتر خاص گرفته استفاده کنم این دستور مقادیر اختصاص داده شده به این متغیرها رو میبینه یا اینکه خود اون ها رو به صورت یک متغیر میبینه؟

    1. blank

      سلام
      در یک پست نمیشه توضیح داد.
      شما با دستور solve می تونید یک معادله پارامتری تعریف کنید.
      اول باید با دستور syms متغییر ها را تعریف کنید و سپس معادله را تعریف کنید.
      این دستور متغییرهایی که با دستور syms تعریف بشه را به صورت متغییر میبینه، اگر مقداری به آنها اختصاص بدید نوع متغییر به نوع معمول double تغییر می کنه و متلب دیگه اونو یک متغییر سمبولیک در نظر نمیگیره.

      ما در فیلم آموزشی سیر تا پیاز این موضوع را توضیح دایم.

  26. blank

    T=input(‘T=’)
    L=input(‘L=’)
    B=input(‘B=’)

    n=1100
    for i=1:n
    if B/L<0.11
    cseven=0.229577*(B/L)^0.3333;
    else
    if 0.11<B/L0.25
    cseven=0.5-0.0625*(L/B);
    end
    end
    end
    end

    سلام مشکل این حلقه چیه…ممنون میشم جواب بدین

    1. blank

      سلام
      B/L0.25
      باید بین B/L و 0.25 ضربدر وجود داشته باشد.
      سعی کن B/L را به عنوان یک متغییر جدید تعریف کن تا در برنامه به این مشکل ها برنخوری.
      در ضمن چند شرط بعد از گرفتن ورودی ها بگذار تا کاربر عدد غیرمجاز بهت نده. مثلا اگر L=0 بهت بده ، مخرج کسر نمیتونه صفر باشه.
      محصول مرتبط سیر تا پیاز متلب

  27. blank

    سلام. من برای انجام یه پروژه چند تا function توی متلب تعریف کردم. و بعد توی یک m-file جدا ازشون استفاده کردم. ولی functionها رو بصورت جدا که run میکنم خطای کافی نبودن آرگومان ورودی رو میده و در نتیجه برنامه کلیم هم اجرا نمیشه.
    من این سه تا فانکشن رو بصورت جدا در mfile های جدا تعریف کردم. اولی رو موقع ران کردن اروری نمیده ولی واسه دومی و سومی اروری که گفتم رو میده

    function gen_data=call_gendata
    gen_data=[
    1 0 350 0.01 0.3 0.2
    2 0 1145.55 0.01 0.3 0.2
    3 0 750 0.01 0.3 0.2
    4 0 732 0.01 0.3 0.2
    5 0 608 0.01 0.3 0.2
    6 0 750 0.01 0.3 0.2
    7 0 660 0.01 0.3 0.2
    8 0 640 0.01 0.3 0.2
    9 0 930 0.006 0.3 0.2
    10 0 1100 0.006 0.3 0.2 ];

    function cost=costfun (x)
    gen_data=call_gendata;
    x=x’;
    cost=sum(gen_data(:,4).*x.^2+gen_data(:,5).*x+gen_data(:,6));

    function objective=costfunsa(x)
    gen_data=call_gendata;
    x=x’;
    cost=sum(gen_data(:,4).*x.^2+gen_data(:,5).*x+gen_data(:,6));
    objective=cost+1e4*(sum(x)-6254.23).^2;

    اینم کد اصلیمه که از هر سه تا تابع باید توش استفاده کنم
    demand=6254.23;
    pcf=1e4;
    gen_data=call_gendata;
    dimnsn=10;
    mni=1000;
    npop=100;
    lb=gen_data(:,2)’;
    ub=gen_data(:,3)’;
    Aeq=ones(1,10);
    beq=demand;
    x0 = (gen_data(:,3) + (gen_data(:,2) – gen_data(:,3)) .* rand(dimnsn,1))’;
    options = saoptimset(‘MaxFunEvals’ ,mni, ‘PlotFcns’ , @saplotbestf, ‘StallIterLimit’,inf,’TimeLimit’,inf,’Display’,’iter’)
    [x,fval]=simulannealbnd(@costfunsa,x0,lb,ub,options)
    cost=fval-pcf*(sum(x)-demand)^2;
    fprintf(‘\n’),display(‘finalsolution is ; ‘),Fs=x’
    fprintf(‘\n’),display(‘load not served : ‘),loadMismatch=sum(x)-demand
    fprintf(‘]n’),display(‘Associated cost:’,cost

    1. blank

      سلام
      خطای کافی نبودن آرگومان تابع یک خطایی است که به سادگی قابل حل است.
      شما در این برنامه یک cost برای بهینه سازی تعریف کردید. باید دقت کنید که تابع هزینه مطایق خواسته تولباکس متلب تعریف کنید.
      ممکن است شما یک ورودی تعریف کرده باشید اما نیاز به دو ورودی باشد.
      پیشنهاد من به شما تهیه فیلم آموزش بهینه سازی در متلب می باشد که تعریف تابع هزینه (cost) با چند مثال توضیح داده شده است.
      فیلم آموزش بهینه سازی در متلب

  28. blank

    سلام چرا کد زیر بجای اجرای قسمت دوم پیام خطا را چاپ می کند ؟
    % This make.m is for MATLAB and OCTAVE under Windows, Mac, and Unix

    try
    Type = ver;
    % This part is for OCTAVE
    if(strcmp(Type(1).Name, ‘Octave’) == 1)
    mex libsvmread.c
    mex libsvmwrite.c
    mex svmtrain.c ../svm.cpp svm_model_matlab.c
    mex svmpredict.c ../svm.cpp svm_model_matlab.c
    % This part is for MATLAB
    % Add -largeArrayDims on 64-bit machines of MATLAB
    else
    mex CFLAGS=”\$CFLAGS -std=c99″ -largeArrayDims libsvmread.c
    mex CFLAGS=”\$CFLAGS -std=c99″ -largeArrayDims libsvmwrite.c
    mex CFLAGS=”\$CFLAGS -std=c99″ -largeArrayDims svmtrain.c ../svm.cpp svm_model_matlab.c
    mex CFLAGS=”\$CFLAGS -std=c99″ -largeArrayDims svmpredict.c ../svm.cpp svm_model_matlab.c
    end
    catch
    fprintf(‘If make.m fails, please check README about detailed instructions.\n’);
    end
    کامپایلر c را هم نصب کرده ام اما باز خطای if make.m fails……را می زند

    1. blank

      سلام
      شما ببینید کدام کمپایلر C را نصب کردید. نکته بعدی این است که بایستی فایل c را با سیستم خودتون کمپایل کنید و سپس دستورات mex اجرا می شوند.
      فایل mex که از جایی گرفتید ممکن است بر روی سیستم شما خطا بدهد. لذا ابتدا فایلهای c را با دستور mex متلب کمپایل کنید و سپس اجرا بگیرید.

  29. blank
    رضا معمر یامی

    با سلام الگوریتم pitch correction تو نتلب و برنامه شو دارم ولی اجرا میکنم دایم خطای زیر رو در یافت میکنم لطفا کمکم کنید
    %%Primitive pitch correction function. Requires input STFT, its frequency
    %%space, and a table of pitches to compare to. Y can bt the HPS of S or any
    %%other peak-accentuated sequence.
    function S_corrected = pitchCorrector(S, F, Y, pitchtable)

    bins = length(S(1,:));
    S_len = length(S(:,1));

    %%Pre-allocates memory for arrays
    maxpeaks = zeros(1,bins);
    indices = zeros(1,bins);
    pitches = zeros(1,bins);
    correctedpitches = zeros(1,bins);
    ratio = zeros(1,bins);
    S_corrected = zeros(S_len,bins);

    %%Finds the maximum amplitudes and their corresponding frequencies in the
    %%Fourier spectrum. correctedpitches stores the closest exact pitch to
    %%each of these maximum pitches. ratio stores the factor by which each
    %%ST-spectrum will have to be shifted in order to obtain the correct
    %%pitch.
    for k = 1:bins
    maxpeaks(k) = max(Y(:,k));
    indices(k) = find(Y(:,k) == maxpeaks(k),k,’first’);
    pitches(k) = F(indices(k));
    correctedpitches(k) = compareToPitches(pitches(k), pitchtable);
    ratio(k) = correctedpitches(k)/pitches(k);

    end

    %%This for-loop is separate from the previous for debugging purposes.
    %%Utilizes the fact that the frequencies in F are spaced linearly, starting at 0, so that
    %%the ratio between frequencies is equivalent to the ratios between sample
    %%indices. If ratio > 1, S_corrected will end with a number of zeros. If
    %%ratio < 1, S_corrected will contain many repeated values. Either way,
    %%high-frequency information will be lost.

    for k = 1:bins
    for j = 1:S_len
    y = round(j/ratio(k));

    %%Prevents negative indices
    if y < 1
    y = 1;
    end

    %%Non-constant frequency scaling
    if y <= S_len
    S_corrected(j,k) = S((y),k);
    end
    end
    end

    end

    خطای مشاهده شده:
    pitchCorrector
    Error using pitchCorrector (line 6)
    Not enough input arguments.

    1. blank

      با سلام
      همانطور که می بینید تابع شما 4 ورودی دارد ولی شما به درستی به آن ورودی نمی دهید.
      خطای
      Not enough input arguments
      یعنی شما تعداد ورودی های تابع را 4 تا قرار ندادید.

  30. blank

    با سلام
    وقتی میخوام از ماتریس پارامتری 6*6 که معکوس بگیرم ارور میده.
    آیا مشکل از ضعف سیستم است؟روی 3تا سیستم دیگه 7 هسته و رم 16 تست کردم ولی بازم همین ارور رو میده
    مشکل از بد نوشته شدنه کد و اشغال فضای رم هست؟
    چطوری باید ماتریس پارامتری 6 در 6 معکوس بگیرم؟
    مربع نوار اسکرول به رنگ سبز هست و قاعدتا نباید مشکلی داشته باشه.
    کد پیوست کردم.
    ممنون میشم بررسی کنین و جواب بدین.

    clc;
    clear;
    % dynamic inverse
    syms r_u r_d alfa_u alfa_d z_cg h_0 si fi teta x y z i_xx i_xy i_zx i_zy i_yx i_xz i_yy i_yz i_zz m_p v_x v_y v_z vdot_x vdot_y vdot_z omega_x omega_y omega_z omegadot_x omegadot_y omegadot_z
    g=9.81;
    i_xy=i_yx ;
    i_xz=i_zx;
    i_yz=i_zy;
    e_11=cos(teta)*cos(si);
    e_21=cos(teta)*sin(si);
    e_31=-sin(teta);
    e_12=sin(fi)*sin(teta)*cos(si)-cos(fi)*sin(si);
    e_22=sin(fi)*sin(teta)*sin(si)+cos(fi)*cos(si);
    e_32=sin(fi)*cos(teta);
    e_13=cos(fi)*sin(teta)*cos(si)+sin(fi)*sin(si);
    e_23=cos(fi)*sin(teta)*sin(si)-sin(fi)*cos(si);
    e_33=cos(fi)*cos(teta);
    x_u=sym(zeros(1,6));
    y_u=sym(zeros(1,6));
    z_u=sym(zeros(1,6));
    x_d0=sym(zeros(1,6));
    y_d0=sym(zeros(1,6));
    z_d0=sym(zeros(1,6));
    x_d=sym(zeros(1,6));
    y_d=sym(zeros(1,6));
    z_d=sym(zeros(1,6));
    l=sym(zeros(1,6));
    u_x=sym(zeros(1,6));
    u_y=sym(zeros(1,6));
    u_z=sym(zeros(1,6));
    for i=1:6
    x_u(i)=r_u*cos((pi/3)*(i)+(-1)^i*alfa_u/2);
    y_u(i)=r_u*sin((pi/3)*(i)+(-1)^i*alfa_u/2);
    z_u(i)=z_cg;
    x_d0(i)=r_d*cos(((2*(1+(2/3)*(i-1))-2)*pi/3)-(-1)^i*alfa_d/2);
    y_d0(i)=r_d*sin(((2*(1+(2/3)*(i-1))-2)*pi/3)-(-1)^i*alfa_d/2);
    z_d0(i)=z_cg+h_0;
    x_d(i)=e_11*x_d0(i)+e_12*y_d0(i)+e_13*z_d0(i)+x;
    y_d(i)=e_21*x_d0(i)+e_22*y_d0(i)+e_23*z_d0(i)+y;
    z_d(i)=e_31*x_d0(i)+e_32*y_d0(i)+e_33*z_d0(i)+z;
    l(i)=sqrt((x_u(i)-x_d(i))^2+(y_u(i)-y_d(i))^2+(z_u(i)-z_d(i))^2);
    u_x(i)=(x_d(i)-x_u(i))/l(i);
    u_y(i)=(y_d(i)-y_u(i))/l(i);
    u_z(i)=(z_d(i)-z_u(i))/l(i);
    end
    A=[u_x(1) u_x(2) u_x(3) u_x(4) u_x(5) u_x(6);u_y(1) u_y(2) u_y(3) u_y(4) u_y(5) u_y(6);u_z(1) u_z(2) u_z(3) u_z(4) u_z(5) u_z(6);u_z(1)*y_u(1)-u_y(1)*z_u(1) u_z(2)*y_u(2)-u_y(2)*z_u(2) u_z(3)*y_u(3)-u_y(3)*z_u(3) u_z(4)*y_u(4)-u_y(4)*z_u(4) u_z(5)*y_u(5)-u_y(5)*z_u(5) u_z(6)*y_u(6)-u_y(6)*z_u(6);-u_z(1)*x_u(1)+u_x(1)*z_u(1) -u_z(2)*x_u(2)+u_x(2)*z_u(2) -u_z(3)*x_u(3)+ u_x(3)*z_u(3) -u_z(4)*x_u(4)+ u_x(4)*z_u(4) -u_z(5)*x_u(5)+ u_x(5)*z_u(5) -u_z(6)*x_u(6)+u_x(6)*z_u(6);u_y(1)*x_u(1)-u_x(1)*y_u(1) u_y(2)*x_u(2)-u_x(2)*y_u(2) u_y(3)*x_u(3)-u_x(3)*y_u(3) u_y(4)*x_u(4)-u_x(4)*y_u(4) u_y(5)*x_u(5)-u_x(5)*y_u(5) u_y(6)*x_u(6)-u_x(6)*y_u(6)];

    B=[m_p*(vdot_x-v_y*omega_z+v_z*omega_y+g*sin(teta));m_p*(vdot_y-v_z*omega_x+v_x*omega_z-g*sin(fi)*cos(teta));m_p*(vdot_z-v_x*omega_y+v_y*omega_x-g*cos(fi)*cos(teta));i_xx*omegadot_x+i_xy*(omega_x*omega_z-omegadot_y)-i_xz*(omega_x*omega_y+omegadot_z)+omega_y*omega_z*(i_zz-i_yy)+i_yz*(omega_z^2-omega_y^2);i_yy*omegadot_y-i_xy*(omega_y*omega_z+omegadot_x)+i_xz*(omega_x^2-omega_z^2)+omega_x*omega_z*(i_xx-i_zz)+i_yz*(omega_x*omega_y-omegadot_z);i_zz*omegadot_z+i_xy*(omega_y^2-omega_x^2)+i_xz*(omega_x*omega_z-omegadot_x)+omega_x*omega_y*(i_yy-i_xx)-i_yz*(omega_x*omega_z+omegadot_y)];

    F=(inv(A))*B;

    1. blank

      با سلام
      شما از متغییرهای سمبولیک استفاده کردید. استفاده زیاد از این متغییرها باعث می شود متلب نتواند برنامه را اجرا کند.
      من دلیل استفاده از این متغیرها را متوجه نمی شوم.
      نکته بعدی تابع inv متغییر سمبولیک قبول نمی کند.

  31. blank
    محمد جراحی

    سلا م خسته نباشید ببخشید من متلبو میخوام نصب کنم رو ستاپ میزنم ارور میده مشکل از چیه باید چکار کنم اگ میشه لطفت راهنمایی کنید خیلی ضرورو یه

  32. blank

    با عرض سلام و احترام
    یک مدلی را در سیمولینک شبیه سازی کردم که شامل 3 تا فضای حالت و 3 تا کنترل کننده است وقتی ران می کنم یکی از فضای حالت ها زرد رنگ می شه و پیغام می ده
    Derivative input 1 of ‘simulink123/State-Space’ at time 0.13263028511581632 is Inf or NaN. Stopping simulation. There may be a singularity in the solution. If not, try reducing the step size (either by reducing the fixed step size or by tightening the error tolerances)
    نمی دونم مشکل از کجاست. برای فضای حالت ها شرایط اولیه هم گذاشتم بازم نشد. ممنون میشم راهنمایی کنید.

    1. blank

      با سلام
      توضیحات کامل این خطا در فیلم های آموزشی زیر قابل دسترسی است :
      آموزش-جامع-سیمولینک-simulinkمباحث-پیشرفته-در-سیمولینک
      اگر بخوام به طور خلاصه بگم سیمولینک از روش های حل عددی برای بافتن جواب استفاده می کند. در مدل شما در زمان مورد نظر این معادله به مشکل می خورد.

  33. blank

    سلام
    خسته نباشید
    کد متلب در کامپیوتر استادم اجرا میشه ولی همون کد یکبار تو سیستم من اجرا شد ولی دیگه هر کاری کردم اجرا نمیشه با این که کد رو هم اصلا تغییر ندادم.
    خطاهای زیر رو میگیره:
    ??? Index exceeds matrix dimensions.

    Error in ==> Rout at 27
    [value, next]= max(x(negbr));

    Error in ==> fitness at 3
    path = Rout(HS_Vector,indexI, Sensor,allneighber_,dist,dmax);

    Error in ==> BatAlgorithm at 51
    pop(i).fit=fitness(fitnes, pop(i).x,indexI, Sensor,allneighber_, dist, dmax,packet_size,Eelec,EFamp,ETamp);

    Error in ==> HS at 25
    pop= BatAlgorithm(fitnes,N,Sensor, indexI, dist,dmax,packet_size,Eelec,EFamp,ETamp,allneighber_);

    Error in ==> WSN at 78
    path=HS(fitnes,Number_of_Node,Sensor, i, dist,dmax,packet_size,Eelec,EFamp,ETamp,allneighber);%[i,Number_of_Node+1];%

    Error in ==> test at 15
    WSN(Sensor(1:Number_of_Nodes),Number_of_Nodes,Eo,equ,xm,ym, ‘black’);

  34. blank

    با سلام و خسته نباشید خدمت شما
    در اجرای برنامه به این خطا بر میخورم. میشه لطفا کمکم کنید؟
    Error in evalfis (line 83)
    [output,IRR,ORR,ARR] = evalfismex(input, fis, numofpoints);

    Error in Degree (line 37)
    FF1=evalfis([-1,1],F1);
    خیلی سپاسگزارم

    1. blank

      با سلام و تشکر از شما
      به احتمال خیلی زیاد در تعریف سیستم تاکاگی سوگنو اشتباهی داشتید.
      اگر این نبوده است، پس دارید ورودی ها را به دستور evalfis اشتباه می دهید. مثلا ممکن است سیستم شما یک ورودی باشد که شما دارید دو ورودی می دهید.

  35. blank

    سلام و خسته نباشید.
    در اجرای یک برنامه متلب یا خطای زیر روبرو میشم، و کلا اجرا نمیکنه:
    [ERROR USING OPEN[100 LINE
    FILE E;:/…./NEW FOLDER/ST1 NOT FOUND
    مشکل چیه؟

    1. blank

      سلام
      دوست گرامی همانطور که متلب هم در خطا توضیح داده است. نتوانسته مسیر اشاره شده در E:/…../NEW FOLDER/ST1 را پیدا کند. به احتمال زیاد این مسیر وجود ندارد.

  36. blank

    سلام
    خسته نباشید
    ببخشید معنای این خطا چیست؟
    Too many input arguments
    برنامه محاسبه fwhm رو توی یک function نوشتم و الان وقتی توی یک برنامه که فراخوانیش میکنم این ارور رو میده …
    ممنون میشم کمکم کنید

    1. blank

      سلام
      اگر به ترجمه خطا هم توجه کنید شما دارید تابع نوشته شده را با تعداد ورودی های بیشتری فراخوانی می کنید.

  37. blank

    با سلام

    در اجرای برنامه ام به خطای زیر برمی خورم. گویا بدلیل پائین بودن ورژن nargoutchk.m را ندارم از کجا این کد را پیدا کنم؟
    Error using ==> nargoutchk
    Not enough input arguments.

    Error in ==> ace at 79
    nargoutchk(0,7)

    1. blank

      با سلام
      خطای
      Not enough input arguments
      به معنای کم بودن تعداد ورودی های تابع nargoutchk می باشد.
      این تابع تعدادخروجی تابع را چک می کند.

    1. blank

      سلام
      دستورات متلب را باید با شکل و ترتیب خاصی وارد کنید. گاهی نگذاشتن یک ویرگول یا پرانتز یا … باعث این خطا می شود.
      خطی که باعث این خطا شده است را بررسی کنید.

    1. blank

      سلام

      در متلب دستور
      x(a:b)=c;

      یعنی خانه های a ام تا b ام آرایه x از با مقدار ثابت c پر می کند.

      این دستور یعنی از خانه 1 تا ده هزار را با 100 پر می کند.

  38. blank

    سلام ببخشید من یه برنامه نوشتم ولی با این ارور برخورد کردم باید چکارکنم؟

    Attempted to access xx(2); index out of bounds because numel(xx)=1.

    Error in truss (line 41)
    xa=xx(indice(2))-xx(indice(1));

    1. blank

      سلام

      خطای
      index out of bounds
      در مواقعی می آید که شما خانه ای از آرایه را فراخوانی می کنید که وجود ندارد. خانه دوم آرایه xx وجود ندارد.

  39. blank

    با سلام
    من می خوام یک فایل صوتی را در متلب خیره کنم قبلا از wavwrite استفاده می کردم و مشکلی نبود اما حالا که ورژن جدید متلب را نصب کردم هنگام استفاده از audiowrite خطای زیر را دریافت می کنم
    Error using audiowrite>validateFilename (line 323)
    Cannot create file ccc.wav. Permission Denied.

    Error in audiowrite (line 105)
    [props.filename, fileExisted] = validateFilename( props.filename );

    واقعا کلافه شدم لطفا کمکم کنید

    1. blank

      سلام
      خودش نوشته دیگه ، permission را set نکردید.
      روی فایل راست کلیک کنید و permission را set کنید.

  40. blank

    با سلام
    بنده یک کد بهینه سازی با pso نوشتم که وقتی اجراش کردم متوجه شدم بعضی قیود ارضا نمیشه و تغییری در در کدم انجام دادم که فقط مقدارهای ثابتی رو به بعضی از نتایجم اضافه کنه و تغییری در متغیر بهینه سازی ندادم اما الان برنامه ران نمیشه و با ارور زیر رو به رو میشم ، اگر ممکنه منو راهنمایی کنید.
    Reference to non-existent field ‘Position’.

    Error in pso (line 61)
    particle(i).Velocity = w*particle(i).Velocity …

    1. blank

      سلام

      متغییر particle یک متغییر ساختاری است و دارای فیلدهایی هست. شما در برنامه نوشتید particle(i).Velocity ، اما مثل اینکه متغییر particle این فیلد را ندارد.

  41. blank

    سلام
    من دستور زیر را در متلب نوشته ام. اجرا می شود ولی legend را نمایش نمی دهد. و خطا می دهد. ممنون می شوم اگر راهنمایی ام کنید.

    clc;
    clear;
    close all;
    f0=2;
    t=0:0.01:2;
    x=cos(2*pi*f0*t);
    figure;
    plot(t,x,’ro:’,’markersize’,12,’markerfacecolor’,[0.8 1 0]);
    legend(‘cos’);

    خطا:
    Error in legend (line 13)
    legend(‘cos’);

    1. blank

      سلام

      کد را داخل متلب اجرا کردم.

      یکی از کوتیشن ها را اشتباه زدید

      درستش اینه

      legend(‘cos’);

  42. blank

    با سلام
    من یه دیتای 2000 رکوردی با 41 پارامتر ورودی دارم که میخوام با genfid 3 در سیستم عصبی فازی اموزش داده بشه ولی متاسفانه این ارور رو میده
    Error using anfismex
    Illegal parameters in fisGaussianMF() –> sigma = 0

    Error in anfis (line 249)
    anfismex(trn_data, in_fismat, t_opt, d_opt, chk_data, method);

    Error in prob_a2 (line 83)
    matfile_probe=anfis(trnData1,matfile_probe,TrainOptions,DisplayOptions,[],OptimizationMethod);

    با تغیرش به genfis2 مشکل حل میشه ولی من در پروژه باید از خوشه بندی استفاده کنم
    لطفا راهنمایی کنید چطور میشه این ارور رو برطرف کرد
    ممنون

    1. blank

      سلام

      این خطا به چندین دلیل ممکن است رخ دهد. نوع تابع عضویت ، درجه تابع عضویت ، پارامترهای آموزش انفیس و ….

      دلیل اصلی این هست که genfis3 از یک روش مشتقی یا گرادیان استفاده می کند. اگر سیگما صفر شود این روش خطا می دهد.

      شما اگر نوع تابع عضویت یا درجه تابع عضویت را تغییر دهید مشکل حل می شود.

  43. blank

    با عرض سلام
    بنده میخواهم تابع سیگما به صورت زیر را رسم کنم. با دستورهای مختلف رسم کردم ولی خطا میدهد. لطفا راهنمایی بفرمایید.
    t و u متغیرهای بنده هستند.
    با تشکر
    >> t=linspace(0,100);
    >> u=symsum(2000/((2*m+1)*pi))*(sin(0.05*(2*m+1)*pi))*(exp(-0.25*pi^2*(2*m+1)^2*t));
    >> plot(t,u)
    Error using plot
    Conversion to double from sym is not possible.

    1. blank

      با سلام
      شما قبل از این دستورات از دستور sym یا syms استفاده کردید. شما از متغییرات سمبولیک در فرمول ها می تونید استفاده کنید اگر بخواهید عدد حاصلشون را در عبارتی استفاده کنید ابتدا باید انها را به double تبدیل کنید. سپس استفاده کنید.
      نکته بعدی : شما می تونید از تابع ezplot هم استفاده کنید که فرمول های سمبولیک را رسم می کند. جایگزین ezplot .
      اگر بهت کمک کرد دعام کن.

  44. blank

    سلام، وقت بخیر
    من یه فایل یداشتم که قبلا با متلب 2007 ران میکردم و مشکلی نداشت. اما الان که با متلب 2017 میخوام باز کنم ران نمیشه و ارور زیر را میده.میشه راهنمایی کنید باید چیکار کنم؟چون .P هست و من امکان دسترسی بهش رو ندارم.ممنون

    The P-code file F:\low was generated prior to Matlab version 7.5 (R2007b) and is no longer supported. Use pcode to regenerate the file using Matlab R2007b or later.

    1. blank

      سلام
      کدهای P دارای encoding خاصی هستند و به محتوی آن هیچ دسترسی نمی تونیم داشته باشیم.
      یکی از مشکلات متلب این هست که هر نسخه جدیدی که می آید بعضی از تابع ها حذف و برخی جدید اضافه می شوند. که این یک نقص است اما متلب همچنان این کار را در هر نسخه جدیدی انجام میدهد.

  45. blank

    سلام خسته نباشید کد برنامه ی من بدای پیدا کردن ماکزیمم یه تابع با استفاده از روش ژنتیک هستش واسه خط 16 خطا میده error in genetic (line16;مشکلش چیه ؟
    Clc;
    clear all;
    N=50;
    Pc=0.9;
    Pm=0.005;
    ITER=100;
    m=2;
    BS=[10 10];
    L=sum(BS);
    Lo=[-2 -3];
    Hi=[2 3];
    population=round(rand(N,L));
    best_so_far=[];
    Average_fitness=[];
    for it=1:ITER
    [real_val]=chrom_decode(population,N,L,BS,m,Lo,Hi);
    [selection_probablity,fit,ave_fit,max_fit,opt_sol]=fit_eval(real_val,N,m);
    if it==1
    best_so_far(it)=max_fit;
    final_sol=opt_sol;
    elseif max_fit>best_so_far(it-1)
    best_so_far(it)=max_fit;
    final_sol=opt_sol;
    elsebest_so_far(it)=best_so_far(it-1);
    end
    Average_fitness(it)=ave_fit;
    [matin_pool]=g-roulette_wheel(population,N,selection_probablity);
    [new_pool]=g_crossover(mating_pool,Pc,N,L);
    [population]=g_mutation(new_pop,Pm,N,L);
    end
    display(‘final Solution optimum fitness’);
    result=[final_sol,bes_so_far(end)];
    x=1:ITER;
    figur,plot(x,best_so_far,’k’,x,Average_fitness,’-k’);
    xlabale(‘Generation’);
    ylabel(‘Fitness Function’);
    legend(‘Best_so_far’,’Average fitness’);
    %%%chrom_decode.m%%%
    function[real_val]=chrom_decode(population,N,L,BS,m,Lo,Hi)
    real_val=[];
    STED(1)=1;
    for i=2:m+1
    STED(i)=STED(i-1)+BS(i-1);
    end
    for j=1:m
    x=BS(j):-1:0;
    pow2x=2.^x;
    for i=1:N
    gene=population(i,STED(j):STED(j+1)-1);
    var_norm=sum(pow2x.*gene)/(2^BS(j)-1);
    real_val(i,j)=Lo(j)+(Hi(j)-Lo(j))*var_norm;
    end
    end
    end
    %%%fit_eval.m%%%
    function[selection_probablity,fit,ave_fit,max_fit,opt_sol]=fit_eval(real_val,N,m)
    for i=1:N
    x=real_val(i,:);
    fit(i)=(x(1)^2-x(2)^2+4*x(2)-x(1)*x(2)-4);
    end
    selection_probablity=fit/sum(fit);
    ave_fit=mean(fit);
    [max_fit,max_loc]=max_fit;
    opt_sol=real_val(max_loc,:);
    end
    function[mating_pool]=g_rulette_wheel(population,N,selection_probablity)
    cdf(1)=selection_probablity(1);
    for i=2:N
    cdf(i)=cdf(i-1)+selection_probablity(i);
    end
    for i=1:N
    q=rand;
    for j=1:N
    if q<=cdf(j)
    matin_pool(i,:)=population(j,:);
    break;
    end
    end
    end
    end
    function[new_pop]=g_crossover(mating_pool,Pc,N,L);
    parent_numrand_perm(N);
    for j=1:2:N
    pointer1=parent_num(j);
    pointer2=parent_num(j+1);
    cut_point=randi(1,1,L);
    off1=matin_pool(pointer1,:);
    off2=mating_pool(pointer2,:);
    if rand<Pc
    temp=off2;
    off2(cut_point+1:end)=off1(cut_point+1:end);
    off1(cut_point+1:end)=temp(cut_point+1:end);
    end
    new_pop(j,:)=off1;
    new_pop(j+1,:)=off2;
    end
    end
    function[population]=g_mutation(new_pop,Pm,N,L);
    mask=rand(N,L)<=Pm;
    poulation=xor(new_pop,mask);
    end

    1. blank

      شما باید خطا را دقیق بگذارید تا بتونم کمکتون کنم
      متلب یه پیغام چاپ می کند. همون را بگذارید.

  46. blank

    با سلام بنده در برنامه نیاز به تعریف تابع لژاندر وابسته داررم
    اما برای plm
    اما من برای pl,m+1
    ,
    Pl,m-1
    نیز نیاز دارم که برنامه ام ارور میده خواهشا رانمایی کنید خیلی بهش نیاز دارم
    برنامه ام
    for l=1:lmax
    for m =0:l
    if abs(m)>l
    Alm=0;
    Blm=0;
    elseif m >= 0
    L=legendre(l,e,’norm’);
    plm=L(m+1,:,:);%Plm
    Plm= squeeze(plm);

    plm1=L(m+2,:,:);%plm+1
    Plm1= squeeze(plm1);
    plm2=L(m,:,:);%plm-1
    Plm2= squeeze(plm2);
    خطاش
    Subscript indices must either be real positive integers or logicals.

    Error in AlmBlm (line 27)
    plm2=L(m,:,:);%plm-1

    Index exceeds matrix dimensions.

    Error in AlmBlm (line 25)
    plm1=L(m+2,:,:);%plm+1

    1. blank

      سلام
      این خطا
      Subscript indices must either be real positive integers or logicals.

      یعنی شما دارید خانه ای از آرایه را با عدد غیر صحیحی صدا می زنید مثلا خانه صفرم یا خانه منهای 2 ام. چون همچین خانه ای نداریم متلب هم این خطا را می دهد.

  47. blank

    سلام
    من میخوام کسی برام پروژه متلب بنویسه برای رشته فیزیک
    لطفا معرفی کنید و هزینه اش معمولا چنده

  48. blank

    با سلام
    ببخشید میشه لطفاً طود من و راهنمایی کنین
    این خطا مربوط به چیه ؟
    Attempted to access W(25); index out of bounds because numel(W)=1.

    1. blank

      با سلام
      متلب داره به زبان غیر شیرین انگلیسی بهتون میگه دیگه :

      شما در کدتون خونه 25 ام از آرایه W را صدا زدید اما متلب خطا داده چون W فقط یک خونه بیشتر نداره.

  49. blank

    خواهش میکنممممم جواب بدین
    این ارور یعنی چه؟
    Cannot find an exact (case-sensitive) match for ‘createmodel’

    The closest match is: Createmodel in D:\Program Files\MATLAB\R2018b\bin\Createmodel.m

    Error in saa (line 6)
    model=createmodel(); % Create Problem Model

    1. blank

      شما با دستور
      model=createmodel();
      یک تابع را فراخوانی کردید. متلب ابتدا در کد جاری دنبال این فایل می گردد و سپس در مسیر جاری و سپس در path خودش و اگر پیداش نکرد این پیغام خطا را می دهد.

      در ضمت متلب case sensitive می باشد یعنی حروف یزرگ و کوچک براش فرق دارد. اگر می خواهید تابع درست صدا زده شود ، c کوچک را به C بزرگ تبدیل کنید در دستور مورد نظر.

  50. blank

    خواهشا جواب بدید

    ارور زیر یعنی چی؟
    MATLAB crash file:C:\Users\user\AppData\Local\Temp\matlab_crash_dump.1308-1:

    ————————————————————————
    Assertion detected at Mon Nov 26 10:53:53 2018
    ————————————————————————

    Configuration:
    Crash Decoding : Disabled – No sandbox or build area path
    Crash Mode : continue (default)
    Current Graphics Driver: Unknown hardware
    Default Encoding : windows-1256
    Deployed : false
    Graphics card 1 : Intel Corporation ( 0x8086 ) Intel(R) HD Graphics 510 Version 23.20.16.4973
    Graphics card 2 : Advanced Micro Devices, Inc. ( 0x1002 ) AMD Radeon (TM) R5 M430 Version 21.19.142.32768
    Host Name : DESKTOP-PF2GNPP
    Java Crash Report : C:\Users\user\AppData\Local\Temp\hs_error_pid1308.log
    MATLAB Architecture : win64
    MATLAB Entitlement ID: Unknown
    MATLAB Root : C:\Program Files\MATLAB\R2016b
    MATLAB Version : 9.1.0.441655 (R2016b)
    OpenGL : hardware
    Operating System : Microsoft Windows 10 Home
    Processor ID : x86 Family 6 Model 78 Stepping 3, GenuineIntel
    Virtual Machine : Java 1.7.0_60-b19 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
    Window System : Version 10.0 (Build 17134)

    Fault Count: 1

    Assertion in void __cdecl `anonymous-namespace’::mwJavaAbort(void) at b:\matlab\src\jmi\jmi\javainit.cpp line 1418:
    Fatal Java Exception. See Java Crash Report for details.

    Register State (captured):
    RAX = 000000001085f2e8 RBX = 000000001085f2e8
    RCX = 00000001841421a0 RDX = 0000000000000000
    RSP = 0000000184142120 RBP = 00000000217e93b0
    RSI = 000000001085f2e8 RDI = 0000000000000000

    R8 = 0000000000000000 R9 = 00007fffc4fd0000
    R10 = 000000001084f317 R11 = 000000001084f317
    R12 = 00000000217e93b0 R13 = 00000001841427e0
    R14 = 000000001084f218 R15 = 000000001085f268

    RIP = 000000001068971a EFL = 00000202

    CS = 0033 FS = 0053 GS = 002b

    Stack Trace (captured):
    [ 0] 0x0000000010684153 C:\Program Files\MATLAB\R2016b\bin\win64\libmwfl.dll+00082259
    [ 1] 0x0000000010682a68 C:\Program Files\MATLAB\R2016b\bin\win64\libmwfl.dll+00076392
    [ 2] 0x0000000010685b2a C:\Program Files\MATLAB\R2016b\bin\win64\libmwfl.dll+00088874
    [ 3] 0x0000000010685377 C:\Program Files\MATLAB\R2016b\bin\win64\libmwfl.dll+00086903
    [ 4] 0x0000000010689168 C:\Program Files\MATLAB\R2016b\bin\win64\libmwfl.dll+00102760
    [ 5] 0x0000000021788c27 C:\Program Files\MATLAB\R2016b\bin\win64\jmi.dll+00691239
    [ 6] 0x000000005e5f7b6d C:\Program Files\MATLAB\R2016b\sys\java\jre\win64\jre\bin\server\jvm.dll+02390893
    [ 7] 0x000000005e5e0ad8 C:\Program Files\MATLAB\R2016b\sys\java\jre\win64\jre\bin\server\jvm.dll+02296536
    [ 8] 0x000000005e5f88e6 C:\Program Files\MATLAB\R2016b\sys\java\jre\win64\jre\bin\server\jvm.dll+02394342
    [ 9] 0x000000005e5fc2d8 C:\Program Files\MATLAB\R2016b\sys\java\jre\win64\jre\bin\server\jvm.dll+02409176
    [ 10] 0x000000005e693a48 C:\Program Files\MATLAB\R2016b\sys\java\jre\win64\jre\bin\server\jvm.dll+03029576
    [ 11] 0x00007fffed87ed3d C:\WINDOWS\SYSTEM32\ntdll.dll+00650557
    [ 12] 0x00007fffed7e6c86 C:\WINDOWS\SYSTEM32\ntdll.dll+00027782
    [ 13] 0x00007fffed87dc6e C:\WINDOWS\SYSTEM32\ntdll.dll+00646254
    [ 14] 0x00000000f345131e C:\WINDOWS\System32\DriverStore\FileRepository\c0308479.inf_amd64_138bcbdfe295965a\atio6axx.dll+16257822
    [ 15] 0x00000000f34512e6 C:\WINDOWS\System32\DriverStore\FileRepository\c0308479.inf_amd64_138bcbdfe295965a\atio6axx.dll+16257766
    [ 16] 0x00000000f274ed6d C:\WINDOWS\System32\DriverStore\FileRepository\c0308479.inf_amd64_138bcbdfe295965a\atio6axx.dll+02616685
    [ 17] 0x00000000f32bc571 C:\WINDOWS\System32\DriverStore\FileRepository\c0308479.inf_amd64_138bcbdfe295965a\atio6axx.dll+14599537
    [ 18] 0x00000000f32bc748 C:\WINDOWS\System32\DriverStore\FileRepository\c0308479.inf_amd64_138bcbdfe295965a\atio6axx.dll+14600008
    [ 19] 0x00000000f32bc168 C:\WINDOWS\System32\DriverStore\FileRepository\c0308479.inf_amd64_138bcbdfe295965a\atio6axx.dll+14598504
    [ 20] 0x00000000f262194b C:\WINDOWS\System32\DriverStore\FileRepository\c0308479.inf_amd64_138bcbdfe295965a\atio6axx.dll+01382731
    [ 21] 0x00000000f2620c77 C:\WINDOWS\System32\DriverStore\FileRepository\c0308479.inf_amd64_138bcbdfe295965a\atio6axx.dll+01379447
    [ 22] 0x00007fffd6986cfc C:\WINDOWS\SYSTEM32\OpenGL32.dll+00158972
    [ 23] 0x00007fffd698710d C:\WINDOWS\SYSTEM32\OpenGL32.dll+00160013
    [ 24] 0x00007fffd699a209 C:\WINDOWS\SYSTEM32\OpenGL32.dll+00238089
    [ 25] 0x00007fffe9e07adc C:\WINDOWS\System32\gdi32full.dll+00424668
    [ 26] 0x00000000481d3150 +00000000

    If this problem is reproducible, please submit a Service Request via:
    http://www.mathworks.com/support/contact_us/

    A technical support engineer might contact you with

  51. blank

    سلام
    کسی هست که بتونه ارور این m-file رو برطرف کنه
    function [bbox, bbX, faces, bbfaces] = detectFaceParts(detector,X,~)

    if( nargin < 3 )
    thick = 1;
    end

    bbox = step(detector.detector{5}, X);

    bbsize = size(bbox);
    partsNum = zeros(size(bbox,1),1);

    یا این m-file

    function dst = mergeFourPoints(src)

    pos = zeros(size(src,1),2);
    pos(:,1) = mean(src(:,[1,3,5,7]),2);
    pos(:,2) = mean(src(:,[2,4,6,8]),2);

    pos = horzcat(pos,[1:size(src,1)]');

    dst = [];
    while( ~isempty(pos) )
    if( size(pos,1) == 1 )
    dst = vertcat(dst,src(pos(1,3),:));
    pos = [];
    else

    tmp = src(pos(1,3),:);
    rad = norm(pos(1,1:2) – tmp(1,1:2)) + norm(pos(1,1:2) – tmp(1,3:4)) + norm(pos(1,1:2) – tmp(1,5:6)) + norm(pos(1,1:2) – tmp(1,7:8));
    th = rad / 8;

    p = 1;
    for i=2:size(pos,1)
    rad = norm(pos(1,1:2) – pos(i,1:2));
    if( rad 0;
    tmp = sum(tmp) ./ sum(num);
    dst = vertcat(dst,tmp);
    pos(p,:) = [];
    end
    end
    else
    dst = src;
    end
    راهنمایی کنید خیلی ممنون میشم

  52. blank

    ایراد برنامه زیر کجاست ممنون از محبتتون
    clc
    clear
    x=linspace(2,5,60);t=0%3;
    for i=1; length(t)
    for j=1;length(x)
    z(j,1)=(e^(-x(j))*sin(t(i))+2*x(j));
    end
    end
    for i=1 ;length(t)
    temp=sprintf(‘t=60xi=t(i)’);
    subplot(2,2,1),plot(x,x(:;i)+i+e|(tem))
    end

    1. blank

      ایراد برنامه دلایل زیادی میتونه داشته باشد.
      مثلا شما فلوچارت را اشتباه نوشته باشید. این را ما دیگه نمی دونیم شما هستید که هدف از برنامه اتون را می دونید.

  53. blank

    Conversion to logical from sym is not possible.
    سلام… اررور بالا در متلب یعنی باید چیکار کنم؟؟
    ممنون از راهنمایی تون

    1. blank

      سلام
      شما در برنامه دارید از متغییرهای سمبولیک استفاده می کنید. متغییرهای سمبولیک برای بیان یک رابطه ریاضی و بیان فرمول کاربرد دارند.
      شما نمی توانید از آنها به عنوان اندیس استفاده کنید چون عددی داخلشون نیست که بخواد به اندیسی از یک آرایه اشاره کند.
      اگر بخواهید به عنوان عدد استفاده کنید باید نوعش را عوض کنید به double تغییر بدید.

    1. blank

      با سلام
      این خطا مربوط به لایسنس license تولباکس شبکه عصبی Neural Network Toolbox می باشد که وقتی متلب متوجه بشود لایسنس مشکل دارد دستورات شبکه عصبی را اجرا نمی کند.

      این دستور را چک کنید :

      license(‘checkout’,’nntool’);

      یا

      “license(‘test’, ‘neural_network_toolbox’)”

      اگر خروجی اینها صفر باشد یعنی متلب مشکل دار نصب شده است.

      در 14 سالی که متلب و شبکه عصبی کار کردم اولین بار این خطا را می بینم. شما یا نسخه قانونی را دانلود کردید و لایسنس براش نخردید ولی با نسخه های قفل شکسته این مشکل وجود ندارد.

  54. blank

    باسلام
    ببخشید این ارور را چطوری میشه رفع کرد ، با وجوداینکه بنده co1 را درطول برنامه نویسی تعریف کرده ام ولی نمیشناسد :
    برنامه :
    tic
    clc
    clear all
    format long
    %%
    Node_list=xlsread(‘Book1.xlsx’,’Sheet1′,’A2:A161′);
    Element_list=xlsread(‘Book2.xlsx’,’Sheet1′,’A2:A132′);
    %%
    COORDINATE=xlsread(‘Book1.xlsx’,’Sheet1′,’B2:D161′);
    DIRECT=xlsread(‘Book2.xlsx’,’Sheet1′,’B2:E132′);
    FN=xlsread(‘Book3.xlsx’,’Sheet1′,’D2:D7′);
    A=zeros(160,2);
    for k=1:Node_list
    A(:,1)=COORDINATE(k,1);
    A(:,2)=COORDINATE(k,2);
    end
    thickness=1.5;
    E=30e6;
    P=1500;
    v=.3;
    %%%%%%%

    %%
    K=zeros(2*160);
    D=(E/(1-(v^2)))*[1 v 0;v 1 0;0 0 (1-v)/2];
    N_Gausspoints=4;
    s(1)=1/sqrt(3);t(1)=-1/sqrt(3);w(1)=1;
    s(2)=-1/sqrt(3);t(2)=1/sqrt(3);w(2)=1;
    s(3)=1/sqrt(3);t(3)=-1/sqrt(3);w(3)=1;
    s(4)=1/sqrt(3);t(4)=1/sqrt(3);w(4)=1;
    B=zeros(131,4);
    for n=1:Element_list
    B(:,1)=DIRECT(n,1);
    B(:,2)=DIRECT(n,2);
    B(:,3)=DIRECT(n,3);
    B(:,4)=DIRECT(n,4);
    for p=1:N_Gausspoints
    %a=dy/dt & b=dy/ds & c=dx/ds & d=dx/dt
    a(p)=.25*((Y(co1(n))*(s(p)-1)+(Y(co2(n))*(-1-s(p)))+…
    (Y(co3(n))*(1+s(p)))+(Y(co4(n))*(1-s(p)))));
    b(p)=.25*((Y(co1(n))*(t(p)-1))+(Y(co2(n))*(1-t(p)))+…
    (Y(co3(n))*(1+t(p)))+(Y(co4(n))*(-1-t(p))));
    c(p)=.25*((X(co1(n))*(t(p)-1))+(X(co2(n))*(1-t(p)))+…
    (X(co3(n))*(1+t(p)))+(X(co4(n))*(-1-t(p))));
    d(p)=.25*((X(co1(n))*(s(p)-1))+(X(co2(n))*(-1-s(p)))+…
    (X(co3(n))*(1+s(p)))+(X(co4(n))*(1-s(p))));
    ارور مربوطه:
    Undefined function or variable ‘co1’.

    Error in project2 (line 45)
    a(p)=.25*((Y(co1(n))*(s(p)-1)+(Y(co2(n))*(-1-s(p)))+…
    – متاسفانه من هنگام تعریف کردن توابع هم با مشابه اروربالا مواجه میشم ، باوجوداینکه انهارا در m-file تعریف کردم مثلا :
    Undefined function or variable ‘jacobi’.

    Error in project (line 44)
    (jmatrix=jacobi(ss,tt,x1,y1,x2,y2,x3,y3,x4,y4;

    1. blank

      سلام
      پس اینجور که شما می فرمایید متلب دارد اشتباه کار می کند و برنامه درست است؟
      نه نیما خان برنامه مشکل دارد. از اول برنامه تا جایی که co1 را فراخوانی کردید این متغییر تعریف نشده است.

  55. blank

    سلام وقتتون بخیر
    من برنامه شبکه عصبی نوشتم که به تنهایی run میشه اما وقتی با الگوریتم pso میخوام وزن هاش رو بهینه کنم برنامه run نمیشه شما میتونید راهنماییم کنید

  56. blank

    با سلام و احترام
    وقتی برنامه متلب را باز می کنم با پیام ذیل روبرو می شوم و امکان هیچ کاری را نمی دهد ممنون می شوم اگر راهنمایی بفرمائید.
    Content is not allowed in prolog.
    Could not parse the file: c:\program files\matlab\r2014a\toolbox\control\control\info.xml

    باسپاس

  57. blank

    سلام خسته نباشید
    من میخوام یه متغیر رو توی workspace ذخیره کنم ولی این پیام رو بهم نشون میده
    Error using save
    Unable to write file gh.mat: permission denied.
    اگه راهنماییم کنید ممنون میشم

    1. blank

      سلام
      کاملا مشخص است که شما اجازه تغییر در فایل ها ندارید و premission لازم را ندارید.
      اگر admin سیستم نیستید، با user مربوط به admin وارد سیستم شوید.
      اگر نیستید از admin بخواهید premission لازم را برای شما فعال کند.

  58. blank

    سلام مجدد من میخوام یه سیمولینک رو run کنم ولی این ارور رو بهم میده
    The current directory ‘c:\program files\matlab\matlab production server\r2015a\bin’ is reserved for MATLAB files.

    Please change your current directory to a writeable directory outside of the MATLAB installation area.
    چیکار باید بکنم درست بشه؟؟؟؟؟؟؟

    1. blank

      سلام
      فایل های سیمولینک را بریزید در یک فولدر و سپس مسیر متلب را به این فولدر تغییر دهید.

  59. blank

    سلام خسته نباشید.
    توی برنامه ای که نوشتم، یه ارروری میاد. میشه لطفا کمکم کنید که از چیه؟
    function l2=TourLength2(tour,model,beinpath,source,power,sinktab)
    n=numel(tour);
    if n>0
    tour2=[];
    for i=1:n
    if beinpath(1,i)==1
    tour2=[tour2 tour(i)];
    end
    end
    tour=tour2;
    n=numel(tour);
    if n>0
    D2=zeros(1,n);
    D3=zeros(1,n);
    %dist to sink
    for i=1:n
    D2(1,i)=sqrt((model.x(tour(i))-sinktab(1,1))^2+(model.y(tour(i))-sinktab(1,2))^2);
    end
    %dist to source
    for i=1:n
    D3(1,i)=sqrt((model.x(tour(i))-source.x)^2+(model.y(tour(i))-source.y)^2);
    end
    L=0;
    for i=1:n-1
    L=L+model.D(tour(i),tour(i+1));
    if model.D(tour(i),tour(i+1))>power
    L=1000;
    end
    end
    L=L+D2(1,n);
    if D2(1,n)>power
    L=1000;
    end
    L=L+D3(1,1);
    if D3(1,1)>power
    L=1000;
    end
    l2=1/(L+1);
    else
    l2=0;
    end
    else
    l2=0;
    end
    end
    _____________

    >> TourLength2
    Error using TourLength2 (line 2)
    Not enough input arguments.

    1. blank

      سلام
      خطای not enough argument
      یعنی شما مقلا یک تابع چهار ورودی تعریف کردید و در هنگام فراخوانی با صدا زدن تابع آنرا با تعداد ورودیهای کمتری صدا زدید و متلب تعجب می کند که شما تابعتون چهار ورودی دارد و چرا سه ورودی بهش وارد کردید.
      TourLength2 شش ورودی دارد و هنگام صدا زدن هیچ ورودی بهش ندادید.

  60. blank

    سلام وقت بخیر
    ببخشید من یک تابع تعریف کردم که کد آن به صورت زیر است اما متاسفانه زمان اجرا خطای Not enough argument را می گیرد.ممنون میشم لطف کنید راهنمایی کنید. من از متلب 2019b استفاده می کنم.با تشکر

    کد تابع:
    function[f1,f2,f3]
    =RD(x1,x2,y1,y2)
    f1=17655*x1+1114*x2+74127;
    f2=26155*x1+775*x2+13147;
    f3=0.4721*y1+0.0740*y2;

    1. blank

      سلام
      خطای not enough argument
      یعنی شما مقلا یک تابع چهار ورودی تعریف کردید و در هنگام فراخوانی با صدا زدن تابع آنرا با تعداد ورودیهای کمتری صدا زدید و متلب تعجب می کند که شما تابعتون چهار ورودی دارد و چرا سه ورودی بهش وارد کردید.

  61. blank

    سلام این برنامه رو که اجرا میکنم ارور زیر رو میده
    ————-
    >> HHO
    Plz , wait for Run HHO…
    Error using HHO (line 3)
    Not enough input arguments.

    ————

    function [HHO_best_fitness,HHO_NFC,new_test_HHO,HHO_convergence_curve,HHO_SR,HHO_num_itr]=HHO(positions,SearchAgents_no,max_iter,lb,ub,dim,fobj,answer,Min_Err,MAX_NFFE)
    disp(‘Plz , wait for Run HHO…’)
    best_pos=zeros(1,dim); %Rabbit_Location: initialize the location and Energy of the rabbit
    HHO_best_fitness=inf; % Rabbit_Energy change this to -inf for maximization problems
    HHO_convergence_curve(1,MAX_NFFE)=0;
    new_test_HHO(1:MAX_NFFE)=0;
    HHO_NFC = 0;
    HHO_SR =0;
    HHO_num_itr = 1;
    t = 1;
    % positions=positions; %Initialize the locations of Harris’ hawks
    %CNVG=zeros(1,T);

    for i=1:SearchAgents_no
    fitness = abs((fobj(positions(i,:))) – answer); % Calculate objective function for each search agent
    if fitness for maximization problem
    HHO_best_fitness = fitness; % Update alpha
    best_pos = positions(i,:); % Update the rabbit
    end
    if HHO_best_fitness > Min_Err
    HHO_NFC = HHO_NFC + 1;
    end
    HHO_convergence_curve(HHO_NFC)=HHO_best_fitness;

    ind_mean=mean(positions,1);
    t_sum=0;
    for ii=1:SearchAgents_no
    k_sum=0;
    for j=1:dim
    k_sum=k_sum+((positions(ii,j).^2)-((ind_mean(1,j)).^2));
    end
    t_sum=t_sum+sqrt(k_sum);
    end
    new_test_HHO(HHO_NFC)=((1/SearchAgents_no)*(t_sum));

    end

    while (t < max_iter && HHO_NFC Min_Err)

    E1=2*(1-(t/max_iter)); % factor to show the decreaing energy of rabbit
    % Update the location of Harris’ hawks
    for i=1:size(positions,1)
    E0=2*rand()-1; %-1<E0=1
    % Exploration:
    % Harris’ hawks perch randomly based on 2 strategy:

    q=rand();
    rand_Hawk_index = floor(SearchAgents_no*rand()+1);
    X_rand = positions(rand_Hawk_index, :);
    if q=0.5
    % perch on a random tall tree (random site inside group’s home range)
    positions(i,:)=(best_pos(1,:)-mean(positions))-rand()*((ub-lb)*rand+lb);
    end

    elseif abs(Escaping_Energy)=0.5 && abs(Escaping_Energy)=0.5 && abs(Escaping_Energy)>=0.5 % Soft besiege
    Jump_strength=2*(1-rand()); % random jump strength of the rabbit
    positions(i,:)=(best_pos-positions(i,:))-Escaping_Energy*abs(Jump_strength*best_pos-positions(i,:));
    end

    % phase 2: performing team rapid dives (leapfrog movements)
    if r=0.5, % Soft besiege % rabbit try to escape by many zigzag deceptive motions

    Jump_strength=2*(1-rand());
    X1=best_pos-Escaping_Energy*abs(Jump_strength*best_pos-positions(i,:));

    if fobj(X1)<fobj(positions(i,:)) % improved move?
    positions(i,:)=X1;
    else % hawks perform levy-based short rapid dives around the rabbit
    X2=best_pos-Escaping_Energy*abs(Jump_strength*best_pos-positions(i,:))+rand(1,dim).*Levy(dim);
    if (fobj(X2)<fobj(positions(i,:))), % improved move?
    positions(i,:)=X2;
    end
    end
    end

    if r<0.5 && abs(Escaping_Energy)<0.5, % Hard besiege % rabbit try to escape by many zigzag deceptive motions
    % hawks try to decrease their average location with the rabbit
    Jump_strength=2*(1-rand());
    X1=best_pos-Escaping_Energy*abs(Jump_strength*best_pos-mean(positions));

    if fobj(X1)<fobj(positions(i,:)) % improved move?
    positions(i,:)=X1;
    else % Perform levy-based short rapid dives around the rabbit
    X2=best_pos-Escaping_Energy*abs(Jump_strength*best_pos-mean(positions))+rand(1,dim).*Levy(dim);
    if (fobj(X2)ub;
    FL=positions(i,:)<lb;
    positions(i,:)=(positions(i,:).*(~(FU+FL)))+ub.*FU+lb.*FL;
    % fitness of locations
    % fitness=fobj(positions(i,:));
    % Update the location of Rabbit
    fitness=abs((fobj(positions(i,:))) – answer);
    if fitness for maximization problem
    HHO_best_fitness = fitness; % Update alpha
    best_pos = positions(i,:); % Update the leaHHOr
    end
    if HHO_best_fitness > Min_Err
    HHO_NFC = HHO_NFC + 1;
    end
    HHO_convergence_curve(HHO_NFC)=HHO_best_fitness;

    ind_mean=mean(positions,1);
    t_sum=0;
    for ii=1:SearchAgents_no
    k_sum=0;
    for j=1:dim
    k_sum=k_sum+((positions(ii,j).^2)-((ind_mean(1,j)).^2));
    end
    t_sum=t_sum+sqrt(k_sum);
    end
    new_test_HHO(HHO_NFC)=((1/SearchAgents_no)*(t_sum));

    end

    t=t+1;
    HHO_num_itr = t;
    % CNVG(t)=HHO_best_fitness;
    % Print the progress every 100 iterations
    % if mod(t,100)==0
    % display([‘At iteration ‘, num2str(t), ‘ the best fitness is ‘, num2str(Rabbit_Energy)]);
    % end
    end

    if HHO_NFC < MAX_NFFE
    HHO_SR = 1;
    end
    disp(HHO_best_fitness)
    % toc
    end

    function o=Levy(d)
    beta=1.5;
    sigma=(gamma(1+beta)*sin(pi*beta/2)/(gamma((1+beta)/2)*beta*2^((beta-1)/2)))^(1/beta);
    u=randn(1,d)*sigma;v=randn(1,d);step=u./abs(v).^(1/beta);
    o=step;
    end

    1. blank

      خطای
      Not enough input arguments
      یعنی شما دارید یک تابع را صدا می زنید اما تابع مورد نظر مثلا سه ورودی دارد اما شما دارید 2 ورودی بهش می دهید.

  62. blank

    x = gallery(‘uniformdata’,30,1,1);
    y = gallery(‘uniformdata’,30,1,10);
    plot(x,y,’.’)
    xlim([-0.2 1.2])
    ylim([-0.2 1.2])
    k=boundary(x,y);
    hold on;
    plot(x(k),y(k));
    میخواستم ببینم اشکال این کد چیه

    1. blank

      سلام
      اشکال خاصی در کد مشاهده نشد اما شما می توانید متغییر k را باز کنید و ببینید آیا آرایه هست یا نه. چون برای اندیس دهی استفاده شده است باید آرایه عددی باشد.
      در ضمن دستورات متلب در زمینه counter هم ببینید شاید بهتر باشه از این روشی که انتخاب کردید.

      1. blank

        حقیقتا این کد خود من نیست و این از هلپ مطلب در آوردم ببینم این دستور کلا قابل اجرا که نشد و اررور داد
        کد خودم چنتا فایل که قابل نوشتن اینجا نیست اگر امکانش هست ایمیل کنم براتون چک کنید فکر میکنم فقط رو سیستم من اجرا نمیشه

  63. blank

    سلام و عرض وقت بخیر
    من کدی دارم که برنامه خطای Index in position 2 exceeds array
    bounds (must not exceed 66). میدهد. با وجود انکه اندازه متغیرها رو چک کردم وای باز متوجه نمیشم کجای کار مشکل داره. ممنون میشم اگرکه راهنمایی بفرمایید.
    im1 = imread(‘coins.png’)
    ;
    figure; imshow(im1);
    im1= imresize(im1,[66 66]);

    a=1;
    b=3;
    c=1;
    d=3;
    %f=1;
    for x=1:1:66
    for y=1:1:66
    q = im1((c:d),(a:b));
    a=a+1;
    b=b+1;
    end
    % f=f(x,y);
    c=c+1;
    d=d+1;
    a=1;
    b=3;
    end

  64. blank

    با سلام
    من میخوام یه تابع بنویسم که دوتا ورودی میگیره:یه بردار و یه عدد
    از توی بردار یه ماتریس با ابعاد عدد*خودش برای من ایجاد کنه
    بعد absolute بگیره و det رو حساب کنه.در نهایت خروجی من یه عدد باشه
    تا اینجا رو نوشتم
    function detfeature=extract feature(A,m,m);
    B=reshape(A,m,m);
    این خطا رو میده
    Error: File: extract.m Line: 1 Column: 29
    Unexpected MATLAB expression.
    یه دنیا ممنون میشم برای حل خطا و نوشتن ادامه کدم کمکم کنید…

  65. blank

    clc
    باعرض سلام و خسته نباشید بابت وب سایت خوبتون، این کد مربوط به ماده گرافن هست، یه ارور میده ، میشه راهنمایی کنین که چیکار کنم مرسی.Error using fprintf
    Invalid file identifier. Use fopen to generate a valid file identifier.

    clear all
    close all
    %% parameters
    e = 1.60217662e-19; %electron charge
    k_B = 1.38064852e-23; %boltzmann constant
    h = 6.62607004e-34; %planck constsnt
    eps0 = 8.854187817620e-12; % air permittivity
    h_ = h/2./pi; % planck constant
    T = 300; % Temp(K)
    mu_c = 100e-3*e; % chemical potential
    delta = 1.e-9; % h=graphene thickness
    Gamma = 0.1e-3*e/h_; % intrinsic losses
    freq = linspace(3, 8, 100)*1.e12; %frequency range
    w = 2.*pi*freq; %angular ferquency
    %% conductivity calculations
    temp1 = mu_c/k_B/T;
    sigma_intra = 1j*e*e*k_B*T/pi/h_/h_./(w + 2j*Gamma)*(temp1 + 2.*log(exp(-temp1)))
    temp1 = 2*abs(mu_c) – (w + 2j*Gamma)*h_;
    temp2 = 2*abs(mu_c) + (w + 2j*Gamma)*h_;
    sigma_inter = 1j*e*e/4./pi/h_*log(temp1./temp2);
    sigma = sigma_intra + sigma_inter;
    sigma_min = pi*e*e/2./h;
    %% conductivity plot
    figure; plot(freq/1.e12, real(sigma/sigma_min), ‘r’)
    title(‘conductivity real part’)
    xlabel (‘frequency (THz)’)
    figure; plot(freq/1.e12, imag(sigma/sigma_min), ‘r’)
    title(‘conductivity imagenary part’)
    xlabel (‘frequency (THz)’)
    % figure; plot(freq/1.e12, real(sigma)*1000, ‘r’)
    % figure; plot(freq/1.e12, imag(sigma)*1000, ‘r’)
    %% permitivity plot
    eps = eps0 + 1.j*sigma./w/delta;
    figure; plot(freq/1.e12, real(eps/eps0), ‘k’)
    title(‘permitivity real part’)
    xlabel (‘frequency (THz)’)
    figure; plot(freq/1.e12, imag(eps/eps0), ‘k’)
    title(‘permitivity imagenary part’)
    xlabel (‘frequency (THz)’)
    %% save data
    fid = fopen(‘Graph100.txt’, ‘w’);
    y = [freq/1.e12; real(eps/eps0); imag(eps/eps0); ones(size(freq))];
    fprintf(fid, ‘%f %f %f %f\n’, y);
    fclose(fid);

  66. blank

    سلام و عرض ادب و احترام. ببخشید من متلب 2019b رو نصب کردم رو لپ تاپم و برنامه رو که میخوام اجرا کنم، پیغام میده:
    C:\Users\Lenovo\Documents\MATLAB\path.m

    Error in rmi.isInstalled

    Error in rmiml.visibleInToolstrip
    ممنون میشم راهنمایی بفرمایین.

    1. blank

      این خطا معمولاً هنگامی رخ می دهد که پرونده های سایه ای در سیستم شما وجود داشته باشد. یک پرونده سایه دار پرونده دیگری با همین نام با فایل اصلی است.
      لطفاً مراحل ذکر شده زیر را برای حل مسئله دنبال کنید:
      1. لطفا دستور زیر را در پنجره فرمان MATLAB اجرا کنید و ببینید آیا پرونده های سایه ای برای pathdef.m وجود دارد. ‘
      >> که -all pathdef.m
      ببینید آیا “pathdef.m” توسط سایر پرونده ها سایه زده است یا خیر. به عنوان مثال ، اگر pathdef.m سایه دار است ، به شرح زیر است
      \\ fs-57-ah \ vmgr $ \ home07 \ \ اسناد \ MATLAB \ pathdef.m
      C: \ File Files \ MATLAB \ R2017a \ جعبه ابزار \ local \ pathdef.m٪ Shadowed
      در اینجا “pathdef.m” در “جعبه ابزار \ محلی” توسط پرونده دیگری با همین نام در “اسناد” متلب سایه می زند.
      2. پرونده ای را که “٪ Shadowed” ندارد به عنوان نظر حذف کنید.
      3. MATLAB را مجدداً راه اندازی کنید و ببینید که آیا مشکل حل شده است یا خیر.
      اگر مشکل هنوز هم رخ می دهد ، لطفا برنامه “whoall.m” را اجرا کنید. این پرونده خروجی “allalloutput.txt” تولید می کند که شامل تمام پرونده ها و پرونده هایی است که آنها را سایه می اندازد. خروجی را مرور کنید و تصمیم بگیرید که کدام پرونده ها باید حذف شوند. اگر از لینوکس استفاده می کنید ، از “whoall_linux.m” استفاده کنید

    1. blank

      سلام
      خیلی ساده است
      شما از متغییر mamfis استفاده کردید اما وجود ندارد و متلب خطا داده است.
      دستورات قبلی را چک کنید.

  67. blank

    سلام یک دستگاه معادلات رو میخواستم به روش شوتینگ حل کنم ولی جواب ها خیلی بی ربط در میاد
    این رو مینویسه==>Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND =
    2.639614e-42.

    1. blank

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

      شما می توانید از دستور جایگزین استفاده کنید:

      W=inv(Sw)*SB;

      جایگزین

      W=Sw \ SB

      برای توضیحات بیشتر
      doc inv
      را در خط فرمان متلب وارد کنید.

    1. blank

      سلام
      بستگی دارد a و b چی باشند.
      اگر عدد صحیح integer باشند :
      X(i,[a,b])=[1,2]0

      0 در خط بالا اضافی است فقط جهت نمایش بهتر دستور قرار داده شده است.

  68. blank

    سلام وقتتون به خیر
    ببخشید من میخوام چندتا عکس رو وارد محیط متلب کنم و از دستور imread هم استفاده میکنم ولی وقتی آدرسی که عکس ها قرار دارند رو کپی میکنم خطای زیر رو برام نمایش میده
    I=imread(‘D:\1_Analytical_photo\DataProject1\I1,tif’);
    figure,imshow(I);
    اروری که میده:
    Error using imread>get_full_filename (line 568)
    File ”D:\1_Analytical_photo\DataProject1\I1,tif” does not exist.
    Error in imread(line 337)
    fullname=get_full_name (filename);
    ممنون میشم راهنماییم کنید.

    1. blank

      سلام و تشکر از شما

      شما در اسم فایل به جای نقطه علامت , قرار دادید.

      چند نکته آموزشی
      این روش برای خواندن چندین عکس مناسب نیست چون فرض کنید شما 1000 تصویر دارید. نمی توانید برای هر تصویر یک دستور imread بنویسید.
      1) بنده در فیلم آموزشی پردازش تصویر در متلب یک روش خوب برای خوندن چندین تصویر گفتم که میتونه بهتون کمک کنه.

      2) یک روش دیگر که جدیدتر می باشد و برای متلب 2020 می باشد . متلب قابلیت خواندن عکس های داخل فولدرها را هم دارد و متلب همه عکس ها را با هم نمی خواند و برنامه سبک نوشته می شود را می توانید در بسته آموزشی یادگیری عمیق در متلب ببینید.

  69. blank

    سلام وقت بخیر این خطا مربوط به چیه ممنون میشم راهنمایی کنین
    > YearlyMean
    Undefined function or variable ‘rcp26’.

    Error in YearlyMean (line 5)
    YRCP26(p,:)=mean(rcp26(a,:));

  70. blank

    سلام ببخشید ، کد من در متلب ران نمیشه ، تا دیروز ران میگرفتم ولی از دیشب ران نمیشه پایین صفحه میاد initializing ، ایراد از چیه

    1. blank

      سلام
      دلیلش کمبود منابع سخت افزاری برای بالا آمدن متلب می باشد.
      اگر میتوانید نرم افزارهای اضافی که نیاز ندارید را پاک بفرمایید.
      یا ممکنه ایراد در کد باشه که باید بررسی بشه.

  71. blank

    سلام یه برنامه دارم که هرچی ران میکنم خطای زیر رو میده
    In an assignment A(:) = B, the number of elements in A and B must be the same.
    باید چیکار کنم؟ ممنون میشم راهنمایی کنید

  72. blank

    با سلام خطای زیر را چگونه میتوانم برطرف کنم؟
    لطفا جواب بدین
    در سیمولینک:
    Error compiling Simscape network for model final_closedloop_mpcsmc.
    Caused by:
    Number of equations exceeds number of variables.

    1. blank

      سلام
      این خطا دلایل زیادی ممکن است داشته باشد. به زبان ساده این خطا یعنی تعداد معادلات از تعداد متغییرها کمتر است و سیمولینک نمی تواند آنرا حل کند. همانطور که می دانید هر مدلی که در سیمولینک می بندید برای آن یک معادله دیفرانسیل ساخته می شود و آنرا توسط solver ها حل می کند. وقتی تعداد معادلات کمتر از متغییرها باشد یعنی سیستم شما قابل حل نیست.
      از انجایی که simscape یک تولباکس پیاده سازی فیزیکی عناصر می باشد باید نگاه کنید که مدل خود را چگونه پیاده سازی کردید.
      پیشنهاد ما به شما شکستن مدل اصلی به چندین زیر مدل می باشد و بررسی تک تک هر زیر مدل تا بتوانید مشکل خود را پیدا کنید.
      اگر از زبان simspace برای پیاده سازی بلوک استفاده کردید، بررسی کنید همه قسمت ها را تعریف کرده باشید.
      component Multi_Disc_Brake
      nodes
      ………
      end
      parameters
      …………
      end
      variables
      …………..
      end
      outputs
      …………
      end
      function setup
      …………
      end
      equations
      …….
      end
      end

      آموزش جامع سیمولینک simulink – ایران متلب

  73. blank

    سلام وقتتون بخیر:من یه سیستم فازی طراحی کردم ولی در سیمولینک خطای زیر رو میزنه
    error initialization commands cannot be evaluated
    sa.fis.’
    unable to open file’

  74. blank

    سلام من وقتی ماتریس هامو وارد متلب میکنم ارور زیر میده نمیدونم چطوری حلش کنم میشه راهنمایی کنید.ممنون
    کد ها هم به این صورت هست
    clear all
    close all
    clc
    a=[0 1 0;0 0 1;-2 -4 -6];
    b=[0 0;0 1;1 0];
    c=[1 0 0;0 1 0];
    d=[0 0;0 0];
    [num1,den1]=ss2tf(a,b,c,d,1)
    [num2,den2]=ss2tf(a,b,c,d,2)
    g1=tf(num1(1,:),den1);
    g2=tf(num1(2,:),den1);
    g3=tf(num2(1,:),den2);
    g4=tf(num2(2,:),den2);
    gt=[g1 g3,g2 g4]
    اروری که میده هم اینه:
    Undefined function or variable ‘tf’.

    Error in Untitled2 (line 10)
    g1= tf (num1(1,:),den1);

    1. blank

      با سلام

      شما می خواهید یک تابع تبدیل transfer function تعریف کنید با دستور tf
      اما
      متلب شما این دستور را نمی فهمد. چندین دلیل می تواند داشته باشد نسخه متلب شما قدیمی است یا درست نصب نشده است.

  75. blank
    مهدی محمدزاده

    با سام و احترام
    Settle = datenum(’31-Dec-2016 ‘);
    CouponRate = 0.0525;
    Maturity = datenum(’15-aug-2047 ‘);
    Price = 114.83;
    ZeroRates = [0.0476 .0466 .0465 .0468 .0473 .0478 .0493 .0539 .0572 .0553]’;
    ZeroDates = daysadd (’31-Dec-2016 ‘,[30 360 360*2 360*3 360*5 360*7 360*10 360*15 360*20 360*25 360*30],1);
    ZeroData = [ZeroDates ZeroRates];

    Error using horzcat
    Dimensions of arrays being concatenated are not consistent.
    لطفا راهنمایی میکنید ممنون

  76. blank

    سلام خطای Index in position 1 exceeds array bounds برای خط y_in(j)=y_in(j)+s(i,k).* w_new(k,j); داده میشه.اگر امکان داره راهنمایی کنید

    1. blank

      سلام
      کاملا مشخص است، خطا دارد می گوید که شما دارید اندیسی را می خوانید که در آرایه مدنظر قرار ندارد.

    1. blank

      این مشکل وقتی متلب دسترسی به ایجاد تغییر در پوشه ها و فایل ها را نداشته باشد، ممکن است اتفاق بیافتد.
      Premission
      فولدری که کدها قرار دارند را چک کنید.

  77. blank

    با سلام
    خطای این خط از برنامه چیست؟
    fprintf(‘***sweep=%d, change=%.4f angle=%.1f deg., [N%d,M%d,P%d,B%d,L%.5f]\n’, …sweep,change,180*angle/pi,N,M,P,B,L);
    ارور می دهد
    Error: File: sepout.m Line: 5 Column: 122
    This statement is incomplete.
    لطفا بهم کمک کنید تشکر

  78. blank

    درواقع کل برنامه همین است:
    % For reports on training progress

    [change,olddelta,angle]=wchange(oldw,w,olddelta);
    oldw=w;
    fprintf(‘***sweep=%d, change=%.4f angle=%.1f deg., [N%d,M%d,P%d,B%d,L%.5f]\n’, …sweep,change,180*angle/pi,N,M,P,B,L);

  79. blank

    invalid call to script /home/oo/line.m
    error: called from
    line
    Square at line 6 column 1
    سلام میشه راهنمایی کنید که مشکلم کجاس که ارور میدع

    1. blank

      سلام
      برنامه line دارد یک خطای syntax یا برنامه نویسی دارد که متلب موقعیتش را خط 6 ستون 1 بیان کرده.
      شما برو در این موقعیت ببین مشکل چی هست.

  80. blank
    زهرا بیرانوند

    سلام وقت بخیر من میخام یه دستگاه معادلات غیرخطی رو به روش نیوتن حل کنم با متلب ۲۰۱۹b Error in NewtonRaphson_ni (line8) fnv1 = feval(fn,v1); در صورتی که دوستم با متلب ۲۰۱۴ اجرا میگیره با همون دستورات بنظرتون مشکل کجاست؟!ممنون

    1. blank
      ایران متلب

      سلام
      یکی از مشکلات متلب و پایتون همین هست که کدی که در نسخه های قبلی نوشته شده است ممکن است در نسخه های بعدی با خطا اجرا شود.
      برای حل مشکل باید تمامی تابع های کد متلب را برای نسخه های جدید تغییر دهید.

  81. blank

    مشکل در مقدار اولیه کردن است.
    عبارت
    GlobalBest.Position = unifrnd(VarMin, VarMax, VarSize);
    را در بخش
    % Initialize Global Best
    وارد کنید.

    1. blank

      سلام
      متلب نمی تواند فرمت فایلهای ورودی یا پسوند آنها را تشخیص دهد و برایش مشخص نیست.

  82. blank

    سلام وقت بخیر.
    من وقتی دستور یا کدی رو در متلب ranمیکنم خطا می دهد و باید برنامه متلب کلا بسته شود.
    پنجره باز شده خطا به نام زیر است:
    matlab has encountered an internal problem and needs to close.
    ممنون میشوم کمک بفرمایید آموزش های متلب تهیه شده از سایت شمارو نمی تونم استفاده کنم به دلیل این مشکل.

    1. blank

      سلام
      این یکی از مشکلات متلب می باشد و به دلیل محدویت های متلب در امکان حافظه به‌وجود می آید.

  83. blank

    سلام و وقت بخیر تو ODE45 ارور زیر رو دارم..
    Error in ode45 (line 115)
    odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0, options, varargin);

    Error in mainkk1 (line 33)
    ode45(@kk1,[0 2],[1;1;0;0.00225]);
    امکانش هست راهنماییم کنید ممنون میشم با متلب 2015B کارمیکنم.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *