Plotting a function of determinant values vs n values.

9 visualizzazioni (ultimi 30 giorni)
Hi, so I have a function s(n), that spits out a n*n matrix. What I want to do is plot the determinant of each s(n) matrix that my s function makes and plot it against n from 1 to 32. I think I have to make a for loop, but I'm not entirely sure how to go about it.
Here's my code for the s function:
if true
% code
function[output]=s(n)
output=zeros(n);
for i = 1:n
for j=1:n
output(i,j)=sqrt(2./n)*sin((pi*(i-.5)*(j-.5))./n);
end
end
end
end

Risposte (3)

KSSV
KSSV il 1 Lug 2016
Modificato: KSSV il 1 Lug 2016
I didn't get your question exactly. I understand the following:
You want to display the output of the above function s.
For a given n the above function gives output a matrix of size nXn. As it is a matrix, you can view it using surf, pcolor.
Eg.
K = s(100) ;
surf(K) ; shading interp ;
pcolor(K) ; shading interp ;

Torsten
Torsten il 1 Lug 2016
for k=1:32
index(k) = k;
output = s(k);
determinant(k) = det(output);
end
plot(index,determinant)
Best wishes
Torsten.

José-Luis
José-Luis il 1 Lug 2016
Modificato: José-Luis il 1 Lug 2016
I'm on a one liner spree, and you don't actually need those loops:
myFun = @(x) det(bsxfun(@(ii,jj) sqrt(2./n)*sin((pi*(ii-.5)*(jj-.5))./n),1:x,(1:x)'));
fplot(myFun,[1 32])

Categorie

Scopri di più su Graphics Performance in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by