Hello, how can I do a (for loop) for this equation to find more than one value of the CF ? Specifically, I mean more than one value for (xm)

1 Ansicht (letzte 30 Tage)
function [CF]= Coherence_Factor(xm,N);
CF = ((abs (sum(xm))).^2) / (N* sum(abs(xm.^2)))
end
%Function call window
xm= [-1:4],N=length(xm);
xm=[-5:-2],N=length(xm);
xm=[-2:1],N=length(xm)
[CF]= Coherence_Factor(xm,N)

Antworten (2)

VBBV
VBBV am 31 Dez. 2022
xm= {[-1:4], [-5:-2],[-2:1]};
xm = 1×3 cell array
{[-1 0 1 2 3 4]} {[-5 -4 -3 -2]} {[-2 -1 0 1]}
for k = 1:numel(xm)
N=length(xm(k));
CF(k)= Coherence_Factor(xm(k),N);
end
CF
CF = 1×3
2.6129 3.6296 0.6667
function [CF]= Coherence_Factor(xm,N);
CF = ((abs (sum(cell2mat(xm)))).^2) ./ (N* sum(abs(cell2mat(xm).^2)));
end

Voss
Voss am 1 Jan. 2023
xm = {-1:4, -5:-2, -2:1};
Nx = numel(xm);
CF = zeros(1,Nx);
for k = 1:Nx
N = numel(xm{k});
CF(k) = Coherence_Factor(xm{k},N);
end
CF
CF = 1×3
0.4355 0.9074 0.1667
function CF = Coherence_Factor(xm,N)
CF = abs(sum(xm)).^2 / (N*sum(abs(xm.^2)));
end
Note that if the xm are always guaranteed to be real-valued (as opposed to complex-valued), then the abs() calls are unnecessary:
xm = {-1:4, -5:-2, -2:1};
Nx = numel(xm);
CF = zeros(1,Nx);
for k = 1:Nx
N = numel(xm{k});
CF(k) = Coherence_Factor(xm{k},N);
end
CF
CF = 1×3
0.4355 0.9074 0.1667
function CF = Coherence_Factor(xm,N)
CF = sum(xm).^2 / (N*sum(xm.^2));
end
And if N is always supposed to be the number of elements in xm, you can define N inside the function Coherence_Factor and avoid having the second input argument:
xm = {-1:4, -5:-2, -2:1};
Nx = numel(xm);
CF = zeros(1,Nx);
for k = 1:Nx
CF(k) = Coherence_Factor(xm{k});
end
CF
CF = 1×3
0.4355 0.9074 0.1667
function CF = Coherence_Factor(xm)
N = numel(xm);
CF = sum(xm)^2 / (N*sum(xm.^2));
end
  1 Kommentar
Walter Roberson
Walter Roberson am 1 Jan. 2023
I wonder if it is supposed to be sum(abs(xm).^2) or abs(sum(xm.^2)) ?
The current sum(xm) having priority has different results if values could be a mix of negative and positive

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by