Is there a more efficient way to format my vector rather than manually change the code

T = 5400;
INT = 900;
tme = 0:INT:T;
TV = [tme(1):30:tme(2)-30, tme(2):15:tme(3)-15, tme(3):12:tme(4)-12, tme(4):2.4:tme(5)-2.4, tme(5):2.1428:tme(6)-2.1428, tme(6):2.5:tme(7)-2.5];
I have this code, however is there an easier way to code this if i want to change the values for 'T' and 'INT' to any random value, for the' TV' vector to automatically update rather than me manually put tme(1), tme(2) etc for those respective values in the 'tme' vector

2 Comments

Until you explain the law to obtain steps 30, 15, 12, 2.4, 2.1428, 2.5, then no you have to enter it by hand.
%Time
T = 5400;
INT = 900;
tme = 0:INT:T;
%Number of Positions and Impacts
Pn = 1320;
In = [30, 60, 75, 375, 420, 360];
TV = [tme(1):INT/In(1):tme(2)-INT/In(1), tme(2):INT/In(2):tme(3)-INT/In(2), tme(3):INT/In(3):tme(4)-INT/In(3), tme(4):INT/In(4):tme(5)-INT/In(4),...
tme(5):INT/In(5):tme(6)-INT/In(5), tme(6):INT/In(6):tme(7)-INT/In(6)];
I want to change 'T', 'INT' and 'In'. The number of values in 'In' should be equal to T/INT. So if we did change T = 5000; INT = 500; and the number of values in In = 10, these values can be random however summed should equal 'Pn', how can that 'TV' vector change automatically to cater this change or how can we combine these condition to produce the 'TV' vector

Sign in to comment.

 Accepted Answer

TV =@(tme) [tme(1):30:tme(2)-30, tme(2):15:tme(3)-15, tme(3):12:tme(4)-12,...
tme(4):2.4:tme(5)-2.4, tme(5):2.1428:tme(6)-2.1428, tme(6):2.5:tme(7)-2.5];
tv1=TV(0:900:5400);
tv2=TV(0:500:5000);

5 Comments

What you have given is exactly what i had asked for, however what i asked for was not right, so apologies on my behalf.
%Time
T = 5400;
INT = 900;
tme = 0:INT:T;
%Number of Positions and Impacts
Pn = 1320;
In = [30, 60, 75, 375, 420, 360];
TV = [tme(1):INT/In(1):tme(2)-INT/In(1), tme(2):INT/In(2):tme(3)-INT/In(2), tme(3):INT/In(3):tme(4)-INT/In(3), tme(4):INT/In(4):tme(5)-INT/In(4),...
tme(5):INT/In(5):tme(6)-INT/In(5), tme(6):INT/In(6):tme(7)-INT/In(6)];
I ask the same thing again, but this time if I want to change 'T', 'INT' and 'In'. The number of values in 'In' should be equal to T/INT. So if we did change T = 5000; INT = 500; and the number of values in In = 10, these values can be random however summed should equal 'Pn', how can that 'TV' vector change automatically to cater this change or how can we combine these condition to produce the 'TV' vector
But if his answer was not what you wanted, then why accept it?
realised after i accepted it, should i unaccept and ask again? it was just he did answer my original question, was my mistake i got it wrong
It IS (sort of) an answer to your question as posed. I (or anyone) might have been moved to answer a separate question, that was posed more accurately, OR an unaccepted and clarified question. You might even find that David then makes his answer a general solution then.

Sign in to comment.

More Answers (0)

Categories

Find more on Mathematics in Help Center and File Exchange

Tags

Asked:

on 16 Aug 2022

Commented:

on 16 Aug 2022

Community Treasure Hunt

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

Start Hunting!