皆さん。私はループに問題があります。それは一度だけ実行され、反復されません。Matlabの再帰的ループは、反復できません
私は宇宙船の表面温度を時間の関数として見出そうとしています。輻射熱の流れは現在の温度に依存するため、ループの次の温度は1秒前の温度に依存するはずです。これはスクリプト全体ではありませんが、ループの何が問題なのか誰にでも教えてください。
ありがとうございます!
% Starting with given surface and interior temperatures, find each new
% temperature with each heat flux every second through one orbit.
timeline = 1:1:time1;
Ts = zeros(size(timeline));
Ts(1) = 240; % initial surface temperature, Kelvins`
for n = 2:length(time1)
Ts(n) = (solarflux + IRs - (sigma*ems_mli*surfarea*(Ts(n-1)^4)))/(m*c) + Ts(n-1);
end
%% Plotting
figure(1)
plot(timeline,Ts)
xlabel('seconds');
ylabel('surface temperature (Kelvins)');
これは再帰ではなく、 ' time1'が定義されていません。[mcve]を入力してください。 – excaza
excaza(http ://stackoverflow.com/questions/38733803/recursive-loop-in-matlab-cantiterate#comment64843709_38733803)では、デバッガhttp://se.mathworks.com/help/matlab/debugging-codeを参照してください。 .html。これはあなたの問題を非常に簡単に解決するはずです。 – patrik