How to reference a variable saved as .mat file to execute code
2 次查看(过去 30 天)
显示 更早的评论
So I have a variable named cyc_mph that is a 1370x2 double. This data is stored as a .mat file.
The first column in the variable file gives me 't' (which goes from 0 to 1369) and the second column gives me 'Vmph'
I am trying to calculate 'a' by the formula given below. But what I want the code to do, is to get the value of 'Vmph' that corresponds to its 't+1' or 't-1' in the data file and give me 'a' for t=2:1:1369.
I do not think my code is gathering the correct 'Vmph' corresponding to the correct 't+1' or 't-1' in my code below. Do you know what I am doing wrong?
CODE:
t = cyc_mph(:,1);
Vmph = cyc_mph(:,2);
for t=2:1:1369
a = (Vmph(t+1)-Vmph(t-1))/(2*((t+1)-(t-1)));
A = ((1/2)*Rhoa*Cd*Af*(Vmph(t).^3));
G = (Mv*g*cos(0).*Vmph(t));
I = (1.1*Mv.*a.*Vmph(t));
Pw(t-1) = (A+G+I)/1000;
end
1 个评论
Walter Roberson
2019-9-18
t = cyc_mph(:,1);
That extracts t values from the array.
for t=2:1:1369
That overwrites that vector of t values with integer constants 2, 3, up to 1369, one at a time.
采纳的回答
Walter Roberson
2019-9-18
t = cyc_mph(:,1);
Vmph = cyc_mph(:,2);
for tidx=2:length(t)-1
a = (Vmph(tidx+1)-Vmph(tidx-1))/(2*(t(tidx+1)-t(tidx-1)));
A = ((1/2)*Rhoa*Cd*Af*(Vmph(tidx).^3));
G = (Mv*g*cos(0).*Vmph(tidx));
I = (1.1*Mv.*a.*Vmph(tidx));
Pw(tidx-1) = (A+G+I)/1000;
end
2 个评论
Walter Roberson
2019-9-18
You had the statement
t = cyc_mph(:,1);
so in one place you are expecting t to refer to some input data . But right after you had
for t=2:1:1369
so your t now referring to datapoint numbers instead.
From there I traced the logic of the code and figured out which references to t were likely to be datapoint numbers and which ones were likely to need the input times, and then I changed the datapoint number version to variable named tidx and changed the input times to t(tidx) to refer to the current input data value.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Annotations 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!