MATLAB Answers

Bob
0

code running for infinite while plotting my array for correlation

Asked by Bob
on 24 Mar 2019
Latest activity Commented on by Bob
on 12 Apr 2019
Hi,
I have problem as my code running for infinite time while I am plotting my arrays to achive coeffcient correlation.
here is my code:
for i=1:length(A)-300
Rx{i}= corrcoef(A (i:i+300), S(i:i+300));
Time_Rx=i;
B{1,i} = Rx(i)
C{1,i} = Time_Rx
end
(Aiming for plot Rx as a function over time)
plotting by using:
plot(B,C);
Can not figure out what is wrong, Any help would be appriciable.

  20 Comments

"Can I plot B values at X axis and Z values at Y axis and in diffrent colors ?"
When would the different colors be triggered?
Your B values increase and decrease irregularly like you see on the first plot. It would not seem to make sense to use them as the X axis values.
When you talk about "and in diffrent colors" my first interpretation was that you were wanting to plot two different lines, one for B, and one for Z, but then talking about plotting them on the X and Y axis would not seem to make any sense. The closest I can find to make sense of that would be to do something like
NA = length(A);
ZERO = zeros(NA, 1);
t = 1 : NA
plot3(t, B, ZERO, 'k', t, ZERO, Z, 'b');
which plots them with a common time base and with two different lines, each along a different axes.
[MOVED from flags] Bob wrote:
Worked well.
@Bob: Please use flags only to informa admins about inappropriate contents like rudeness or spam. Thanks.
Hi Walter,
How can I avraged my data (A anS) in minutes (for 10 minutes) before I do correlation calculation, in above code ??

Sign in to comment.

1 Answer

Answer by BERGHOUT Tarek on 6 Apr 2019
Edited by Walter Roberson
on 6 Apr 2019
 Accepted Answer

if you want to plot Rx , then you should plot B not C, and you can't plot B vs C in this example because C and B they dont have the same length ( dimensions are not the same), try this code , I hope that it is helpful:
clear all;
clc;
%%%
t=1:600;
A=0.25;
B=1.25;
f1=0.5;
f2=0.025;
S=A*sin(f1*t)+B*cos(f2*t)+wgn(size(t,1),size(t,2),3);
A=S+randn(size(S));
%%%
B=[];
for i=1:length(A)-300
Rx=corrcoef(A (i:i+300), S(i:i+300));
B=[B Rx];
end
plot(1:size(B,2),B);

  1 Comment

Dear berghout,
How can I make a Linear plot of Rx values to visualize the all correlation points, either negative or positive correlation?

Sign in to comment.