سؤال بسيط بالفور لووب


(السكروب1) #1

ليش ما يعطيني الا اخر القيم بالفور لوب؟

مثلا اخر صف او اخر عمود من قيمة الفور لوب

وكيف اتغلب عليها؟


(المهندس سعود) #2

حتى تتغلب على هالمشكلة
عرفها على اساس انها مصفوفة
ورح اوضحلك بمثال
انتظر


(المهندس سعود) #3

لو افترضنا اننا نريد ايجاد مربع الارقام من واحد الى خمسة من خلال فور لووب
وكتبنا الكود التالي :

for i=1:5
x=i^2
;end

ثم بعد ذلك طبعنا اله التالي :

x

سيعطينا اخر قيمة لاكس لاته اكس بالطريقه هاي كل لووب ستتغير قيمتها وتأخذ اخر قيمة فقط
لذلك تظهر عندنا اخر قيمة فقط


(المهندس سعود) #4

ولكن اذا كتبنا الكود كالتالي

for i=1:5
x(i)=i^2;
end

لا حظ انني عرفت الاكس على اساس انها مصفوفة في كل لووب يضاف اليها عنصر جديد
واذا طبعنا بعد ذلك له :

x

ستظهر لنا مصفوفة بخمسة عناصر
وهو المطلوب


(المهندس سعود) #5

وصلت الفكرة ؟؟؟؟؟
لا تتردد بالسؤال


(السكروب1) #6

الله يبارك فيك استاذي الفاضل

مو هنا المشكلة عندي اذا حطيتها مصفوفة يطلع خطأ

واذا حطيتها عادي يعطي اخر القيم

شوف اللي عندي

 dh(i)

يطلع خطأ

واذا شلت i يشتغل بس ما يعطيني الا اخر القيم


close all
clear all
clc
phi=40
for i=1:5
 
delta(i)=23.45*sind(((284+i)/365)*360); 
omegasun(i)=(24/360)*acosd(-tand(phi)*tand(delta(i)));
daylength(i)=omegasun(i)*2;
sunrise(i)=12-omegasun(i);
sunset(i)=12+omegasun(i);
dh(i)=linspace(sunrise(i),sunset(i),daylength(i));
 
end
 

عدلها ياسعود الله يعدل حظنا وحظك ويبارك فيك


(ايجيبت) #7


close all
clear all
clc
phi=40;
for i=1:5
 
delta(i)=23.45*sind(((284+i)/365)*360); 
omegasun(i)=(24/360)*acosd(-tand(phi)*tand(delta(i)));
daylength(i)=omegasun(i)*2;
sunrise(i)=12-omegasun(i);
sunset(i)=12+omegasun(i);
dh(i,(1:daylength(i)))=linspace(sunrise(i),sunset(i),daylength(i))

end 



الله يوفقك ويارب اكون قدرت اساعدك


(السكروب1) #8

الله يوفقك ويوسع لك في رزقك

اشتغل الى 10 او 11 بعدها يعطي خطأ

جرب هذا


close all
clear all
clc
phi=input ('Enter the latitude: '); % phi is the  latitude which i a given value
for i=1:365
delta(i)=23.45*sind(((284+i)/365)*360); %(checked OK)
omegasun(i)=(24/360)*acosd(-tand(phi)*tand(delta(i)));
daylength(i)=omegasun(i)*2;
sunrise(i)=12-omegasun(i);
sunset(i)=12+omegasun(i);
dh(i,(1:daylength(i)))=linspace(sunrise(i),sunset(i),daylength(i));
for j=1:length(dh)
nhfn(i,j)=dh(i,j)-12;
omega(i,j)=nhfn(i,j)*360/24; % where nhfn means number of hours from the noon, it is positive afternoon and negative before the noon
theta(i,j)=acosd((cosd(phi)*cosd(delta(i))*cosd(omega(i,j)))+(sind(phi)*sind(delta(i)))); %(checked OK)
if theta(i,j)>=90
    theta(i,j) = theta(i,j)-90;
else
end
nr=1.33;
r(i,j)=asind((sind(theta(i,j))/nr)); 
% the solar radiation Qsr is assumed to be full absorbed by the storage zone
cc(i,j)=1/(cosd(r(i,j))+nr*cosd(theta(i,j)));
dc(i,j)=1/(cosd(theta(i,j))+nr*cosd(r(i,j)));
tau(i,j)=2*nr*cosd(theta(i,j))*cosd(r(i,j))*((cc(i,j))^2+(dc(i,j))^2); 
end
end


(المهندس سعود) #9

اظن انه هو الصحيح

[COLOR=#0000bb]close all
clear all
clc
phi[/color][COLOR=#007700]=[/color][COLOR=#0000bb]input [/color][COLOR=#007700]([/color][COLOR=#dd0000]'Enter the latitude: '[/color][COLOR=#007700]); % [/color][COLOR=#0000bb]phi is the  latitude which i a given value
[/color][COLOR=#007700]for [/color][COLOR=#0000bb]i[/color][COLOR=#007700]=[/color][COLOR=#0000bb]1[/color][COLOR=#007700]:[/color][COLOR=#0000bb]365
delta[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700])=[/color][COLOR=#0000bb]23.45[/color][COLOR=#007700]*[/color][COLOR=#0000bb]sind[/color][COLOR=#007700]((([/color][COLOR=#0000bb]284[/color][COLOR=#007700]+[/color][COLOR=#0000bb]i[/color][COLOR=#007700])/[/color][COLOR=#0000bb]365[/color][COLOR=#007700])*[/color][COLOR=#0000bb]360[/color][COLOR=#007700]); %([/color][COLOR=#0000bb]checked OK[/color][COLOR=#007700])
[/color][COLOR=#0000bb]omegasun[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700])=([/color][COLOR=#0000bb]24[/color][COLOR=#007700]/[/color][COLOR=#0000bb]360[/color][COLOR=#007700])*[/color][COLOR=#0000bb]acosd[/color][COLOR=#007700](-[/color][COLOR=#0000bb]tand[/color][COLOR=#007700]([/color][COLOR=#0000bb]phi[/color][COLOR=#007700])*[/color][COLOR=#0000bb]tand[/color][COLOR=#007700]([/color][COLOR=#0000bb]delta[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700])));
[/color][COLOR=#0000bb]daylength[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700])=[/color][COLOR=#0000bb]omegasun[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700])*[/color][COLOR=#0000bb]2[/color][COLOR=#007700];
[/color][COLOR=#0000bb]sunrise[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700])=[/color][COLOR=#0000bb]12[/color][COLOR=#007700]-[/color][COLOR=#0000bb]omegasun[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700]);
[/color][COLOR=#0000bb]sunset[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700])=[/color][COLOR=#0000bb]12[/color][COLOR=#007700]+[/color][COLOR=#0000bb]omegasun[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700]);
[/color][COLOR=#0000bb]dh[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],([/color][COLOR=#0000bb]1[/color][COLOR=#007700]:[/color][COLOR=#0000bb]daylength[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700])))=[/color][COLOR=#0000bb]linspace[/color][COLOR=#007700]([/color][COLOR=#0000bb]sunrise[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700]),[/color][COLOR=#0000bb]sunset[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700]),[/color][COLOR=#0000bb]daylength[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700]));
for [/color][COLOR=#0000bb]j[/color][COLOR=#007700]=[/color][COLOR=#0000bb]1[/color][COLOR=#007700]:size[/color][COLOR=#007700]([/color][COLOR=#0000bb]dh,2[/color][COLOR=#007700])
[/color][COLOR=#0000bb]nhfn[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700])=[/color][COLOR=#0000bb]dh[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700])-[/color][COLOR=#0000bb]12[/color][COLOR=#007700];
[/color][COLOR=#0000bb]omega[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700])=[/color][COLOR=#0000bb]nhfn[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700])*[/color][COLOR=#0000bb]360[/color][COLOR=#007700]/[/color][COLOR=#0000bb]24[/color][COLOR=#007700]; % [/color][COLOR=#0000bb]where nhfn means number of hours from the noon[/color][COLOR=#007700], [/color][COLOR=#0000bb]it is positive afternoon [/color][COLOR=#007700]and [/color][COLOR=#0000bb]negative before the noon
theta[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700])=[/color][COLOR=#0000bb]acosd[/color][COLOR=#007700](([/color][COLOR=#0000bb]cosd[/color][COLOR=#007700]([/color][COLOR=#0000bb]phi[/color][COLOR=#007700])*[/color][COLOR=#0000bb]cosd[/color][COLOR=#007700]([/color][COLOR=#0000bb]delta[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700]))*[/color][COLOR=#0000bb]cosd[/color][COLOR=#007700]([/color][COLOR=#0000bb]omega[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700])))+([/color][COLOR=#0000bb]sind[/color][COLOR=#007700]([/color][COLOR=#0000bb]phi[/color][COLOR=#007700])*[/color][COLOR=#0000bb]sind[/color][COLOR=#007700]([/color][COLOR=#0000bb]delta[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700])))); %([/color][COLOR=#0000bb]checked OK[/color][COLOR=#007700])
if [/color][COLOR=#0000bb]theta[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700])>=[/color][COLOR=#0000bb]90
    theta[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700]) = [/color][COLOR=#0000bb]theta[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700])-[/color][COLOR=#0000bb]90[/color][COLOR=#007700];
else
[/color][COLOR=#0000bb]end
nr[/color][COLOR=#007700]=[/color][COLOR=#0000bb]1.33[/color][COLOR=#007700];
[/color][COLOR=#0000bb]r[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700])=[/color][COLOR=#0000bb]asind[/color][COLOR=#007700](([/color][COLOR=#0000bb]sind[/color][COLOR=#007700]([/color][COLOR=#0000bb]theta[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700]))/[/color][COLOR=#0000bb]nr[/color][COLOR=#007700])); 
% [/color][COLOR=#0000bb]the solar radiation Qsr is assumed to be full absorbed by the storage zone
cc[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700])=[/color][COLOR=#0000bb]1[/color][COLOR=#007700]/([/color][COLOR=#0000bb]cosd[/color][COLOR=#007700]([/color][COLOR=#0000bb]r[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700]))+[/color][COLOR=#0000bb]nr[/color][COLOR=#007700]*[/color][COLOR=#0000bb]cosd[/color][COLOR=#007700]([/color][COLOR=#0000bb]theta[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700])));
[/color][COLOR=#0000bb]dc[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700])=[/color][COLOR=#0000bb]1[/color][COLOR=#007700]/([/color][COLOR=#0000bb]cosd[/color][COLOR=#007700]([/color][COLOR=#0000bb]theta[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700]))+[/color][COLOR=#0000bb]nr[/color][COLOR=#007700]*[/color][COLOR=#0000bb]cosd[/color][COLOR=#007700]([/color][COLOR=#0000bb]r[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700])));
[/color][COLOR=#0000bb]tau[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700])=[/color][COLOR=#0000bb]2[/color][COLOR=#007700]*[/color][COLOR=#0000bb]nr[/color][COLOR=#007700]*[/color][COLOR=#0000bb]cosd[/color][COLOR=#007700]([/color][COLOR=#0000bb]theta[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700]))*[/color][COLOR=#0000bb]cosd[/color][COLOR=#007700]([/color][COLOR=#0000bb]r[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700]))*(([/color][COLOR=#0000bb]cc[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700]))^[/color][COLOR=#0000bb]2[/color][COLOR=#007700]+([/color][COLOR=#0000bb]dc[/color][COLOR=#007700]([/color][COLOR=#0000bb]i[/color][COLOR=#007700],[/color][COLOR=#0000bb]j[/color][COLOR=#007700]))^[/color][COLOR=#0000bb]2[/color][COLOR=#007700]); 
[/color][COLOR=#0000bb]end
end 

[/color]


(المهندس سعود) #10

المشكلة في الفور لووب الثانية
لاحظت التغيير
انا جربتها وما طلع اخظاء
جربها وقلي
اخوك م . سعود


(السكروب1) #11

شكر الله سعيك اخي المهندس سعود

بالنسبة لحجم dh
size(dh,2)

ماذا يعني الرقم 2 ولماذا 2 بالذات


ثانيا هل للتحذر الذي يظهر مشكله وماهو سببه ، اقصد هذا

Warning: Integer operands are required for colon operator when used as index.
> In test4 at 11

اشكركم كثيرا


(المهندس سعود) #12

الرقم 2 الموجود في التعليمة هو لايجاد عدد الاعمدة في المصفوفة
ولكان واحد بدل اثنين لكان عدد الصفوف


(المهندس سعود) #13

اما بالنسبه للتحذير
فهو ينبهك الى ضرورة استخدام اعداد صحيحه عند استخدام ( النقطتان الرأسيتان) ك ااندكس لمصفوفة ما
وهو لا يؤثر على سير العمل


(المهندس سعود) #14

وصلت الفكرة؟؟؟؟
نحن هنا لخدمتكم باذن الله


(السكروب1) #15

سلمت الايادي

وصلت الفكرة ياريس

بس باقي فيها مشكلة وحدة بعد التعديل

هو ان الصفوف (عدد ساعات النهار) تتزايد الى المنتصف بعدين تتناقص

وهذا بالبداة بحاب tau جاي مضبوط وطالعة اصفار

مفروض بالعمود الاخير واللي قبله واللي ايضا قبله في الاخير يعطي اصفار

صار مايعطي اصفار وانما يكرر الرقم

ياليت تتكرم وتشوفه يالطيب الغالي


(المهندس سعود) #16

ما انا فاهم عليك
وضح اكثر


(السكروب1) #17

شكرا للرد اخي سعود

انا اقصد نتائج tau

فالمفروض ان تكون بهذا الشكل (لاحظ الاصفار ) في اخر عمودين يكون الاصفار متماثلة بين الصفوف التي في الاعلى والصفوف التي في الاسفل

لان ساعات النهار او طول النهار (قيم j ) يفترض ان تبدا منخفضة فترتفع في نصف السنة ثم تعود للانخفاض

لاحظ الاصفار


 12  5  3  0  0
 2   1  7  0  0
 8  11  3  9  0
 5   1  6  3  0
 4   2  3  1  7
 5   4  1  9 25
 7   6  3  5  0
 8   2  9  1  0
 1   8  2  0  0
 8   6  5  0  0

بينما نتائج البرنامج في الصفوف العليا صحيحة وتعطي اصفار
لكن في الصفوف الدنيا يكرر الرقم الذي قبله مما يعني ان قيمة j مكررة في حين يجب ان لا يكون لها قيمة وعليه يعطي اصفار

مثل هذا (وضعت لك نجمة بجانب الرقم المكرر والذي يجب ام لا يكون له قيمة اي صفر بالمصفوفة )


12  5  3  0  0
 2   1  7  0  0
 8  11  3  9  0
 5   1  6  3  0
 4   2  3  1  7
 5   4  1  9 25
 7   6  3  5  *5
 8   2  9  1  *1
 1   8  2  *2 *2
 8   6  5  *5 *5

واسف جدا لاني غلبتك معي


(المهندس سعود) #18

بدي وقت لحين ما اقدر اتتبعه
لكن اعدك ان شاء الله
انا مشغول الان


(المهندس سعود) #19

الحقيقة انا حاولت اتبع برنامجك
ولا حظت
ان هذه المعادلات لم افهمها
ولذلك لا يمكن ان اعرف ان النتيجة صحيحة او لأ
لم الاحظ اي تكرار
الذي تقول عنه


(السكروب1) #20

شكرا لك اخي سعود ومتأسفين جدا لازعاجك

لاحظ اخر ثلاث اعمدة (11،12،13) لل tau

تجد القيم مكررة وهذه هي (هذا جزء منها) لاحظ كل صف تجد اعمدته مكرره


0.5033 0.5033 0.5033
0.49748 0.49748 0.49748
0.49193 0.49193 0.49193
0.48669 0.48669 0.48669
0.48175 0.48175 0.48175
0.47713 0.47713 0.47713
0.47285 0.47285 0.47285
0.46891 0.46891 0.46891
0.46532 0.46532 0.46532
0.4621 0.4621 0.4621
0.45925 0.45925 0.45925
0.45677 0.45677 0.45677
0.45468 0.45468 0.45468
0.45299 0.45299 0.45299
0.45168 0.45168 0.45168
0.45078 0.45078 0.45078
0.45028 0.45028 0.45028
0.45018 0.45018 0.45018
0.45048 0.45048 0.45048
0.45118 0.45118 0.45118
0.45229 0.45229 0.45229
0.45379 0.45379 0.45379
0.45568 0.45568 0.45568
0.45796 0.45796 0.45796
0.46063 0.46063 0.46063
0.46366 0.46366 0.46366
0.46707 0.46707 0.46707
0.47084 0.47084 0.47084
 

كانت يفترض ان تكون صفر بدل التكرار