How find the best step for the array.
2 次查看(过去 30 天)
显示 更早的评论
Hello,
I have following array:
first_tt= 1;step = 7;last_tt = 27;
tt= first_tt:step:last_tt;
Answer:
tt= [1,8,15,22];
So what I want is to include the last number 27, by slightly changing the step, BUT still meet the second array value of original array, in this case 1+7= 8. tt= [1, 8,15,22];
Currently done:
first_tt= 1; step = 7;last_tt = 27; tt= first_tt:step:last_tt; new_step = (last_tt-first_tt)/length(tt); new_tt= first_tt:new_step:last_tt;
Answer:
new_tt = [1,7.5,14,20.5,27];
So what I need is to include second array value of original array, i.e 8, so I'm wondering, if there are any ways of doing it?
new_tt = [1,..., *8 (?)*,....,27];
Even +/-2% would be ok.
i.e
new_tt = [1,..., *7.84 (?)*,....,26.46];
Best Regards,
Ivan
3 个评论
采纳的回答
Ced
2016-3-17
编辑:Ced
2016-3-17
You need to decide whether you want equidistant steps, or matching numbers.
I'm sure I'm missing something, but if you just want the second and last, then
tt = first_tt:step:last_tt;
if ( tt(end) < last_tt )
tt(end+1) = last_tt;
end
Or, if you only need to match the two numbers, then:
first_tt= 1;step = 7;last_tt = 27;
second_tt = first_tt + step;
n_elements = floor((last_tt-second_tt)/step)+1;
tt = linspace(second_tt,last_tt,n_elements);
The point is, there are a million ways of doing this, but none of them will manage to go from one number to another in equidistant steps without some other compromise.
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!