How can I add two sets of results with different size?

1 次查看(过去 30 天)
Hello all,
I have two sets of data which are as follows:
T1:1x4655757 dndT1: 1x4655757,
T2:1x45669 dndT2: 1x45669,
The above results are obtained as a result of solving a differential equation on the same T interval but with two different parameters (two different B):
dndT=a*exp(B/T)*(1-n);
where a and B are constants.
I want to add these two results up (dndT1+dndT2). I don't know how can I do that. Can anyone help me with that.
  2 个评论
Akira Agata
Akira Agata 2020-4-10
Questions for clarification:
  1. "same T interval" means T1 and T2 cover the same range? (such like T1(end) - T1(1) = T2(end) - T2(1) ?)
  2. Another parameter in the equation n is also constant?

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2020-4-10
I suggest that when you call ode45 that you pass in a vector of multiple times instead of two times exactly. When you pass two exactly, ode45 reports output whenever it feels like it, which could end up being different number of times for different B values. When you pass a vector of 3 or more times it reports back at those times only. You would then get the same length of results in the output and so would be able to add directly.
  5 个评论
Walter Roberson
Walter Roberson 2020-4-10
I suggest linspace(294,361,1e6)
Or possibly more than 1e6. The first one must be oscillating a lot if it feels that it needs 4e6 outputs.
I wonder if you should use ode23s? I suspect that you have a stiff system.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Ordinary Differential Equations 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by