Plotting a function of determinant values vs n values.

조회 수: 11 (최근 30일)
Odom Seng
Odom Seng 2016년 6월 30일
편집: José-Luis 2016년 7월 1일
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

답변 (3개)

KSSV
KSSV 2016년 7월 1일
편집: KSSV 2016년 7월 1일
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 2016년 7월 1일
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 2016년 7월 1일
편집: José-Luis 2016년 7월 1일
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])

카테고리

Help CenterFile Exchange에서 Graphics Performance에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by