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)
Ältere Kommentare anzeigen
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)
0 Kommentare
Antworten (2)
VBBV
am 31 Dez. 2022
xm= {[-1:4], [-5:-2],[-2:1]};
for k = 1:numel(xm)
N=length(xm(k));
CF(k)= Coherence_Factor(xm(k),N);
end
CF
function [CF]= Coherence_Factor(xm,N);
CF = ((abs (sum(cell2mat(xm)))).^2) ./ (N* sum(abs(cell2mat(xm).^2)));
end
0 Kommentare
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
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
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
function CF = Coherence_Factor(xm)
N = numel(xm);
CF = sum(xm)^2 / (N*sum(xm.^2));
end
1 Kommentar
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
Siehe auch
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!