How can I extrapolate to higher values in Matlab? [closed] - matlab

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
I have the following data:
T=[0,100,300]
and
a=[2.8796,2.8785,2.886]
and I want to extrapolate and know what a will I get at T=600 in Matlab.
How can I do that?

If its linear the code below solves this
clear all
close all
T=[0,100,300];
a=[2.8796,2.8785,2.886];
reg = polyfit(T,a,1);
figure
hold on
plot(T,a,'bx')
plot(T,reg(2)+T.*reg(1),'k-')
plot(600,reg(2)+600*reg(1),'ro')
plot(600,interp1(T,a,600,'linear','extrap'),'md')
legend('observations','lin. regression','pred. at 600p polyfit','pred. at 600p interp1')
val_polyfit = reg(2)+600*reg(1)
val_interp1 = interp1(T,a,600,'linear','extrap')
diff = val_polyfit/val_interp1
yields
val_polyfit =
2.8924
val_interp1 =
2.8972
diff =
0.9983

For Linear Interpolation:
aextra = interp1(T,a,600,'linear','extrap')

Related

Sum Matlab from 0 to 10000 on function [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 2 years ago.
Improve this question
syms k
S1 = symsum(1/((2*k)+1)^2,k,0,1000)
The result is this
59039372973827482202940226722672826425297321906316082356858983822169051832268260251807527611479190413293513875429587706186073872918905490907386679472102966658686481651660967093301512141946288248492833396616338323741632085379508599235923841007033467883638349122388806376761808189104503262045883240287482992169819848342303098664924237976221795758421152603069387903705445513260596627332283139648508194960733619500093010571517561429904500013876585156927070119332440687162376758374919870699278800835146651318465663183182583101377584105366558079836223068786457324044080570317649838092783113721959819118571747662368360095513856052974454509201490370810246175872510881504730747209788019551000695511879992198550955686739483474761130248789609061549535677663474218135370195381615899214931316241080337028498241295985409686314819267606796712968280842464845294917738460317179001491697993067157425958639996885239616893392960282441289069600101430806922004624472226999315951355963789249300352610312601262349650287009275097201871774652260892220551489305368617001974326978428202443548923140478853569492070442010110016068635424791389124439271253578545895132216218268847919848655110002938693346760862649668457282775860633067627110099340660770861888592018701206483696615682617062811616008107086256694453990688805738127607846586853460003073465075155412119309273843527076321601670400373937698518621100907936577387919537592519265365346619712200304996044229704602647674114176291753575322917531444831938509001759491229575945273985556769609288625450013634760596805884195325794441020339210402987018058377081579351119704065092777310976461961832919116412535470810011337916688085616171422473409544885864650134157327448050685723673514545806331081542320899927
It is a number in this form a/b
Why is this happening??
Do you know how to do this in octave too?
k = (0:1000);
k_sum = sum(1./((2*k)+1).^2);
disp(k_sum)
It's interesting that you jumped straight to using syms when the basic matlab functions work perfectly well for this problem. Why is that?

How to covert this specific equation to matlab code [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 4 years ago.
Improve this question
How to represent this equation to matlab code
Like so:
function y = sgn(x)
if x == 0
y = 0;
else
y = x / abs(x);
end
end

Matlab script to rename signal name [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 4 years ago.
Improve this question
I have simulink block which has thousands of input signal for example which contains a text TRXA
AIM1_Freshness_TRXA_FCC,
AIM2_Freshness_TRXA_FCC
I need to create exact replica of the model only change is TRXA is changed to TRXB
AIM1_Freshness_TRXB_FCC ,
AIM2_Freshness_TRXB_FCC
Any easy or matlab script to do that
Does the following help?
open_system('your_model')
x = find_system('RegExp','on','FindAll','on','Name','TRXA');
for idx=1:size(x,1)
name_orig = get_param(x(idx),'Name');
set_param(x(idx),'Name',strrep(name_orig,'TRXA','TRXB'));
end

Calculate area from Signal under basline [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
The Matlab code I have plots the following curve:
X1= 1:600;
plot (X1,tmp)
basline = 0;% level
area(tmp,basline,'FaceColor','g');
how can I calculate the area in the red circle?
You need to find the 2nd and 3rd zero cross (z2 and z3). then do a sum over the tmp. Something like this:
X1= 1:600;
tmp = sin(0.03*X1);
plot (X1,tmp)
range = 209:314;
basline = 0;% level
area(tmp,basline,'FaceColor','g');
figure;area(tmp(range),basline,'FaceColor','g');
sum(tmp(range))

Is there a way to get a function to perform the same operation on a list of variables in MATLAB? [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
E.g. I'd like to perform a command like blitzer(blitzer(:,4)<0.5,5) on a list of variables (or all the variables in the workspace) in MATLAB.
So I'd like to perform it on comet, dasher, etc...
Use the who function:
s = who;
for i = 1:length(s)
temp = eval(s{i});
answer{i} = temp(temp(:,4)<0.5,5);
end