Inserting a function in a matrix.
19 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Jason Psimopoulos
am 7 Dez. 2020
Bearbeitet: Jason Psimopoulos
am 9 Dez. 2020
I am trying to solve the system above.I think I got right the first part of the quation with a for loop(code bellow) L = 51;
ws1 = 0.4*pi;
wp1 = 0.5*pi;
Ks1 = 1;
Kp = 2;
wo = (ws1+wp1)/2;
G = 1000;
w = [0:(G)]*pi/G;
W = Ks1*(w<=ws1) + Kp*(w>=wp1)
D = (wo>=w);
N=(L-1)/2
m=0:N
k=1:1001
for i = 0:N
F(i+1,:)=sum(arrayfun(@(k) (W(k).^2).*D(k).*cos(w(k).*i), 1:1000))
end
I am struggling though in the second part.My code looks like this but it does not seem to work.
for i = 0:N
for p = 0:N
F2=@(k)(W(k).^2).*D(k).*(cos(w(k).*i).*(cos(w(k).*p))')
end M[i+1,p+1]=sum[arrayfun(@(k) F2(k), 1:1000)]
end
Does anyone know how I could possibly fix that.I also download the symbolic math toolbox but I was not able to find something to help me with that.
2 Kommentare
Théophane Dimier
am 8 Dez. 2020
Bearbeitet: Théophane Dimier
am 8 Dez. 2020
Hi,
that line looks a bit weird:
end M[i+1,p+1]=sum[arrayfun(@(k) F2(k), 1:1000)]
What do you want to do there? you should not have a statement after the end. Also, functions are called with parenthese () and not brackets []. To index arrays one should also use parentheses () and not brackets [] (unlike python or C)
Considering that it was a typo, would the following work?
M(i+1,p+1)=sum(arrayfun(@(k) F2(k), 1:1000))
end
Akzeptierte Antwort
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!