رفتن به مطلب

استفاده از متغیر یک برنامه در برنامه دیگر


helen66

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

سلام

ی برنامه نوشتم که جواب اخرشو میخوام برای ی برنامه دیگه استفاده کنم.(مثلا ی برنامه نوشتم تا بهe برسم الان میخوام تو ی برنامه دیگه از eاستفاده کنم) راهی وجود داره که دیگه کدها رو دوباره ننویسم ؟فقط از eاستفاده کنم..

تشکر

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

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

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

سلام

ی برنامه نوشتم که جواب اخرشو میخوام برای ی برنامه دیگه استفاده کنم.(مثلا ی برنامه نوشتم تا بهe برسم الان میخوام تو ی برنامه دیگه از eاستفاده کنم) راهی وجود داره که دیگه کدها رو دوباره ننویسم ؟فقط از eاستفاده کنم..

تشکر

 

 

سلام

می تونین به صورت فانکشن تعریف کنین، این متغیر خروجیش باشه، یا با دستور save ذخیره ش کنین، توی برنامه دوم با دستور load ازش استفاده کنین.

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

می تونین به صورت فانکشن تعریف کنین، این متغیر خروجیش باشه، یا با دستور save ذخیره ش کنین، توی برنامه دوم با دستور load ازش استفاده کنین.

 

سلام مهندس

ووقتتون بخیر

این برنامه رو نوشتم میخوام ماتریس Id،

1*100 بشه ولی ارورر میده میتونید راهنماییم کنید؟

clc
kd1=eye(1,100);
k=[-1,0,1];
kd=k(randi([1,3],1,100 ));
Prate=0.85+(0.9-0.85)*rand(1,100);
ereq1=kd.*Prate;
Ereq.d=sum(ereq1);
Id=zeros(1,100);
if kd=0
   Id=1
else
   Id=0
end

 

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

توی متلب شیی گرایی کاربرد نداره ؟:ws52:

 

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

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

ووقتتون بخیر

این برنامه رو نوشتم میخوام ماتریس Id،

1*100 بشه ولی ارورر میده میتونید راهنماییم کنید؟

clc
kd1=eye(1,100);
k=[-1,0,1];
kd=k(randi([1,3],1,100 ));
Prate=0.85+(0.9-0.85)*rand(1,100);
ereq1=kd.*Prate;
Ereq.d=sum(ereq1);
Id=zeros(1,100);
if kd=0
   Id=1
else
   Id=0
end

 

 

سلام

مرسی، این یه سوال دیگه س که، چرا بازم توی همین تاپیک؟

خب سینتکس if رو درست ننوشتین، به غیر از اون kd یه بردار 100 تایی هست، به نظر یه حلقه هم براش نیاز داشته باشین.

 

توی متلب شیی گرایی کاربرد نداره ؟:ws52:

 

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

 

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

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

ببخشید دوتا سیگما(جمع) رو چطور تو متلب کدشو بنویسم؟؟ مثلا فرمول زیر رو چطور میتونم بنویسم؟

5h32dum81ladygxjegve.png

 

سلام

می تونین دو تا حلقه تو در تو بذارین، این دو تا سیگما رو براتون انجام بده، یا اگه ماتریس یا بردار باشه با sum هم میشه.

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

با سلام

میخوام مجموع kd*prate رو از 1تا 24 حساب کنم ...کد زیر رو نوشتم جواب نمیده !ممنون میشم راهنماییم کند..

با تشکر

clc

kd1=eye(1,100);

k=[-1,0,1];

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

Prate=0.85+(0.9-0.85)*rand(1,100);

for i=1:1:24

ereq1=kd(i).*Prate;

Ereq.d=sum(ereq1);

end

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

میخوام مجموع kd*prate رو از 1تا 24 حساب کنم ...کد زیر رو نوشتم جواب نمیده !ممنون میشم راهنماییم کند..

با تشکر

clc

kd1=eye(1,100);

k=[-1,0,1];

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

Prate=0.85+(0.9-0.85)*rand(1,100);

for i=1:1:24

ereq1=kd(i).*Prate;

Ereq.d=sum(ereq1);

end

 

سلام

چرا 24، متغیرهاتون 100 تا درایه دارن که؟

 

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

 

clear;
A = 1:10;
S = 0;
for i = 1:10
   S = S + A(i);
end

 

حالا اگه اینو بخوایم بدون حلقه بنویسیم، میشه اینجوری:

 

sum(A)

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

چرا 24، متغیرهاتون 100 تا درایه دارن که؟

 

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

 

clear;
A = 1:10;
S = 0;
for i = 1:10
   S = S + A(i);
end

 

حالا اگه اینو بخوایم بدون حلقه بنویسیم، میشه اینجوری:

 

sum(A)

 

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

 

t3yoqpy1e9o8potoziok.png

لینک به دیدگاه
مرسی بابت راهنماییتون ...برای فرمول زیر میخواستم کد بنویسم:

 

t3yoqpy1e9o8potoziok.png

 

خب در مورد متغیرهاتون بیشتر توضیح میدین، چه شکلی هستن و چجوری می خوان جمع بشن؟

لینک به دیدگاه
kd,prate که ماتریس 1*100 هستن وبه kd زمان های 1تا 24 تعلق داره که میخوام مجموع kd*prate از 1 تا 24 رو بدست بیارم...

 

یعنی kd و prate هر دو بر حسب زمان هستن؟

اولین درایه kd قراره تو چی ضرب بشه، همین درایه دوم و بعدی؟

لینک به دیدگاه
یعنی kd و prate هر دو بر حسب زمان هستن؟

اولین درایه kd قراره تو چی ضرب بشه، همین درایه دوم و بعدی؟

 

نه فقط kd بر حسب زمانه..

مثلا میگیم نرخ شارژ اولین خودرو مثلا 0.85 است (برای prate) که مثلا در kd=1 در ساعت 3 (1:24) ضرب میشه.

لینک به دیدگاه
نه فقط kd بر حسب زمانه..

مثلا میگیم نرخ شارژ اولین خودرو مثلا 0.85 است (برای prate) که مثلا در kd=1 در ساعت 3 (1:24) ضرب میشه.

 

ببین هلن خانوم، الان شما برای Prate یه بردار با 100 درایه داری، یه ماتریس kd داری که بازم 100 تا درایه ی صفر و یک و منفی یک داره، یه حلقه با 24 تکرار می خوای بنویسی که یه مجموعی رو برات حساب کنه، اینجوری که نوشتی میاد kd های 1 تا 24 رو در بردار Prate ضرب می کنه، بعد که مجموع حساب بشه، سه عدد می تونه بهمون بده، مجموع Prate، صفر و منفی مجموع Prate. اینجا از استراکچر استفاده کردی، حالا اگه بخوای همین 24 خروجی رو نگه داری، یه ایندکس هم به استراکچرت میدی:

 

clear;
kd1=eye(1,100);
k=[-1,0,1];
kd=k(randi([1,3],1,100 ));
Prate=0.85+(0.9-0.85)*rand(1,100);
for i=1:1:24
ereq1=kd(i).*Prate;
Ereq(i).d=sum(ereq1);
end

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

با سلام

ببخشید این برنامه رو نوشتم نمیدونم چرا خروجی نمیده،ممنون میشم راهنماییم کنیذ...

با تشکر

[left]clc
clear all3
close all
kd1=eye(1,100);
k=[-1,0,1];
kd=k(randi([1,3],1,100 ));
Prate=0.85+(0.9-0.85)*rand(1,100);
ereq1=kd.*Prate;
pev.d=sum(ereq1);
% pb1=zeros([]);
pb2=0+(400-0).*rand(1,1);
pbase=(1/(24*30))*pb2;
s=0;
for i=0:24
   s=s+(pb2(i)+pev(i));
   pavg=(1/24)*s;
end
disp(pavg)

[/left]

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

ببخشید این برنامه رو نوشتم نمیدونم چرا خروجی نمیده،ممنون میشم راهنماییم کنیذ...

با تشکر

 

سلام

واسه چی clear all3؟

 

pb2 هم یه درایه داره، داخل حلقه i تا 24 تغییر می کنه، واسه همین ارور میده دیگه، می خواد درایه دوم رو استفاده کنه، میبینه چنین درایه ای وجود نداره.:a030:

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

ممنونم بابت راهنماییتون ولی pb2 رو تا 24 درایه هم که تغییر دادم باز هم خروجی نداد!

clc
clear all
close all
kd1=eye(1,100);
k=[-1,0,1];
kd=k(randi([1,3],1,100 ));
Prate=0.85+(0.9-0.85)*rand(1,100);
ereq1=kd.*Prate;
pev.d=sum(ereq1);
% pb1=zeros([]);
pb2=0+(400-0).*rand(1,24);
pbase=(1/(24*30))*pb2;
s=0;
for i=0:24
   s=s+(pb2(i)+pev);
   pavg=(1/24)*s;
end
disp(pavg)

لینک به دیدگاه
ممنونم بابت راهنماییتون ولی pb2 رو تا 24 درایه هم که تغییر دادم باز هم خروجی نداد!
clc
clear all
close all
kd1=eye(1,100);
k=[-1,0,1];
kd=k(randi([1,3],1,100 ));
Prate=0.85+(0.9-0.85)*rand(1,100);
ereq1=kd.*Prate;
pev.d=sum(ereq1);
% pb1=zeros([]);
pb2=0+(400-0).*rand(1,24);
pbase=(1/(24*30))*pb2;
s=0;
for i=0:24
   s=s+(pb2(i)+pev);
   pavg=(1/24)*s;
end
disp(pavg)

 

ببخشید چطور میتونم ،کد ها رو مثل شما قرار بدم؟؟؟

لینک به دیدگاه
ممنونم بابت راهنماییتون ولی pb2 رو تا 24 درایه هم که تغییر دادم باز هم خروجی نداد!
clc
clear all
close all
kd1=eye(1,100);
k=[-1,0,1];
kd=k(randi([1,3],1,100 ));
Prate=0.85+(0.9-0.85)*rand(1,100);
ereq1=kd.*Prate;
pev.d=sum(ereq1);
% pb1=zeros([]);
pb2=0+(400-0).*rand(1,24);
pbase=(1/(24*30))*pb2;
s=0;
for i=0:24
   s=s+(pb2(i)+pev);
   pavg=(1/24)*s;
end
disp(pavg)

 

خب i از صفر شروع میشه، توی متلب که ایندکس صفر نداریم (آدرس ها از یک شروع میشه). pev.d هم اگه بخواین به صورت استراکپر بنویسین باید موقع استفاده هم به همون صورت استفاده کنین:

 

clear

kd1=eye(1,100);
k=[-1,0,1];
kd=k(randi([1,3],1,100 ));
Prate=0.85+(0.9-0.85)*rand(1,100);
ereq1=kd.*Prate;
pev=sum(ereq1);
% pb1=zeros([]);
pb2=0+(400-0).*rand(1,24);
pbase=(1/(24*30))*pb2;
s=0;
for i=1:24
s=s+(pb2(i)+pev);
pavg=(1/24)*s;
end
disp(pavg) 

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

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


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