رفتن به مطلب

استفاده از Function Handle در متلب


helen66

ارسال های توصیه شده

نوشته که مربوط به چه خطی میشه، ابعاد دو طرف مساوی بهم نمی خوره، مثلا می تونه طرف اول یه درایه آدرس دهی شده باشه، طرف دوم ماتریس یا بردار باشه که خب ابعادشون به هم نمی خوره.

بازم اررور!!نمیدونم دیگه چیکار کنم:sad0::sad0:

Error using .*

Matrix dimensions must agree.

 

Error in pssoo (line 164)

BestCost(it)=GlobalBest.Cost.*(eye(200,1));

لینک به دیدگاه
  • پاسخ 87
  • ایجاد شد
  • آخرین پاسخ

بهترین ارسال کنندگان این موضوع

بهترین ارسال کنندگان این موضوع

این کد نویسیه شما مثله این میمونه که بخواین برای یه دکمه یه کت و شلوار بدوزی! شما خط به خط ارور میگیرین از کدتون.بهتر نیست یکبار با دقت از دوباره کد رو بنویسید؟

لینک به دیدگاه

سلام

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

if (landa*d)>0 , (landa*d)

socinitial=(1-(landa.*d)./dr1)*100; %initial soc

elseif (landa*d)>=0.8*dr1;

socinitial=0.2;

end

 

اررورش اینه:

>> cost2

Error using *

Inner matrix dimensions must agree.

 

Error in cost2 (line 23)

if (landa*d)>0 , (landa*d)

  • Like 2
لینک به دیدگاه

برای استفاده از and باید از & یا در مواردی که خروجی شرطها اسکالر باشن از && استفاده کنین.اگه لطف کنین و اروری رو که در حالت استفاده از & میگیرید بذارید شاید بهتر بتونم کمک کنم.

  • Like 2
لینک به دیدگاه
نوع متغیرهایی که توی شرط هاتون استفاده کردین چین؟ منظورم اینه که اسکالرن دیگه؟

نمیدونم برنامم چرا اینطوری شده تا دیشب اررور نمیداد سیوشم کرده بودم امشب همش اررور میده!!!:sad0::icon_pf (34):

& گذاشتم از خط بعدی اررور داد ولی همچنان نارنجیه!برنامم اینه:

function hel = cost2( kd,Id,Dd )

%UNTITLED3 Summary of this function goes here

% Detailed explanation goes here

global NFE;

if isempty(NFE)

NFE=0;

end

NFE=NFE+1;

% daily travel distance

beta1=0.1;

beta2=0.2;

alfa=10;

t=linspace(0,24);

a=readfis('gu1'); %Read a fuzzy inference system from a gu1

x=normrnd(9.97,2.2,100,1); %depend on arrival time

y=normrnd(17.01,3.2,100,1); %depond on departure time

d=evalfis([x y],a); %daily travel distance

 

aer=[30,40,60]; %DIFFERENT AERS

dr1=aer(randi([1,3],1));

landa=d./100; %percentage of mileage driven in all electrical...

% mode

if (landa.*d)>0 & (landa.*d)

socinitial=(1-(landa.*d)./dr1)*100 %initial soc

elseif (landa.*d)>=0.8.*dr1;

socinitial=0.2

end

 

%BATTERY CAPACITY FOR DIFFERENT TYPES OF PHEV (kWh)

e=eye(100,1);

h1=[7.8,9,11.4,13.8];

p1=h1(randi([1,4],1,1));

h2=[10.4,12,15.2,18.4];

p2=h2(randi([1,4],1,1));

h3=[15.6,18,22.8,27.6];

p3=h3(randi([1,4],1,1));

p=[p1 p2 p3];

eta=0.85+(0.9-0.85)*rand(1,100); % the charging efficiency factor

c=p(randi(3,1,100)); %BATTERY CAPACITY

c=diag©;

ereq=(((e-socinitial))'.*c)./eta; %The energy required to fulfill the battery

 

%Smart Pricing Policy

psys=ereq/t; %load demand of the system at time slot ,

pavg=ereq/24; %the average load demand of the system

rt=beta1+(beta2*(alfa.^((psys-pavg)./pavg)));

% disp(rt);

% kd1=eye(1,100);

k=[-1,0,1];

kd=k(randi([1,3],1,100 )); %charging strategy

Prate=1.8+(3.6-1.8)*rand(1,100); %the rated charging power of the dth PHEV

s=0;

for d=1:24

PEV=s+(kd.*Prate(d)); %total charging power of PHEVs

end

m=0;

for t=1:24

coschg=m+PEV(t).*rt; %charging cost

end

% disp(coschg)

 

%Battery Degradation Cost

ee=eye(1,100);

cl=240.*ee;

lc=5000;

% etadis=0.8;

cb=300;

% Edis=300;

DOD=0.8;

h1=[7.8,9,11.4,13.8,10.4,12,15.2,18.4,15.6,18,22.8,27.6];

Eb=h1(randi([1,12],1,100));

 

% kd1=eye(1,100);

k=[-1,0,1];

kd=k(randi([1,3],1,100 ));

Prate=1.8+(3.6-1.8)*rand(1,100);

Dd=zeros(1,100); %discharging state of PHEVs

Dd(kd==-1)=1;

Edis=0;

for d=1:100

for t=1:24

Edis=Edis+Dd(t).*Prate(d); %discharge energy by PHEVs.

end

end

 

costbat=(((cb.*Eb)+cl)./((lc*DOD).*Eb))*Edis; %Battery Degradation Cost

reg=4928; %regulation service price at time slot

% kd1=eye(1,100);

k=[-1,0,1];

kd=k(randi([1,3],1,100 )); %charging strategy

Prate=1.8+(3.6-1.8)*rand(1,100); %the rated charging power of the dth PHEV

Id=zeros(1,100); %idle state of PHEVs

Id(kd==0)=1;

pr=Id.*Prate;

PReg=sum(pr); %the frequency regulation capacity of the system

Earnreg=0;

for t=1:24

Earnreg=Earnreg+(PReg.*reg); %revenue earned by regulation service

end

%Earnreg1=Earnreg.*eye(1,100);

hel=coschg+costbat-Earnreg

 

 

الان خط 41 اررور میده که نمیدونم دلیلش چیه؟شما میتونید راهنماییم کنید؟

  • Like 1
لینک به دیدگاه

اررورش اینه:

Undefined function or variable "socinitial".

 

Error in cost2 (line 41)

ereq=(((e-socinitial))'*c)./eta; %The energy required to fulfill the battery

  • Like 1
لینک به دیدگاه
خب ممکنه لاندا* D کوچکتر از صفر دربیاد و اصلا socinitial مقدار دهی نشه

 

من syms socinitial به برنامه اضافه کردم که socinitial رو تعریفم کرده باشمولی بازم ارور داد:Warning: System is inconsistent. Solution does not exist.

  • Like 1
لینک به دیدگاه

الان اضافه کردم ولی بازم اررور میده:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

ارورش اینه:

Warning: System is inconsistent. Solution does not exist.

  • Like 1
لینک به دیدگاه

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

  • Like 2
لینک به دیدگاه
الان دیگه ارور مربوط به کد نویسی ندارین و این اخطاری که گرفتین میتونه مثلا ناشی از شرایط خاص دیتاهاتون باشه .راستش من در این مورد نمیتونم نظری بدم.شرمنده

 

ممنون از راهنماییتون،لطف کردین:a030:

  • Like 1
لینک به دیدگاه
الان اضافه کردم ولی بازم اررور میده:

ارورش اینه:

Warning: System is inconsistent. Solution does not exist.

 

سلام

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

  • Like 1
لینک به دیدگاه
سلام

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

 

سلام اقا ایمان

این خطو که اضافه کردم:syms socinitial

ی سوال مهندس:دیشب برنامه اررور نمیداد ولی امروز که ران کردم اررورا پیدا شدن دلیلش چیه؟؟؟

  • Like 1
لینک به دیدگاه
سلام اقا ایمان

این خطو که اضافه کردم:syms socinitial

ی سوال مهندس:دیشب برنامه اررور نمیداد ولی امروز که ران کردم اررورا پیدا شدن دلیلش چیه؟؟؟

 

خب یه چیزی حتما تغییر کرده، که ارور میده.

 

مثل اینکه وقتی بردار توی مخرج باشه متلب، با روش کمترین مربعات حل می کنه سیستم رو، اگه متغیرها از نوع سمبولیک باشن این وارنیگ رو میده، این لینک رو ببین هلن خانوم، کامنت آخر:

[h=1]

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

[/h]

  • Like 1
لینک به دیدگاه
خب یه چیزی حتما تغییر کرده، که ارور میده.

 

مثل اینکه وقتی بردار توی مخرج باشه متلب، با روش کمترین مربعات حل می کنه سیستم رو، اگه متغیرها از نوع سمبولیک باشن این وارنیگ رو میده، این لینک رو ببین هلن خانوم، کامنت آخر:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

 

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

شما نمیدونید چه تغییری باید اعمال کنم؟؟

  • Like 1
لینک به دیدگاه

×
×
  • اضافه کردن...