how to convert a wave form into 2D matrix form using for loop?
1 次查看(过去 30 天)
显示 更早的评论
my code is here
%%STEP FIRST (wave form)
clc;
clear all;
Imax=0.8;
Imin=0.2;
Im=Imax-Imin;
T = 20;
s1= @(x) ((2*Im*x/T)+Imin+Im/2).*(0<=x & x<=T/4) +((-2*Im*x/T)+Imin+3*Im/2).*(T/4<=x & x<=3*T/4)+((2*Im*x/T)+Imin-3*Im/2).*(3*T/4<=x & x<=T);
x = linspace(0, 20);
I1 = s1(x);
figure(1),plot(x,I1)
% second step (2D matrix image)
m=1000;
n=1000;
for i=1:m
for j=1:n
s1= @(x) ((2*Im*x/T)+Imin+Im/2).*(0<=x & x<=T/4) +((-2*Im*x/T)+Imin+3*Im/2).*(T/4<=x & x<=3*T/4)+((2*Im*x/T)+Imin-3*Im/2).*(3*T/4<=x & x<=T);
I(i,j)=s1*(j/n+i/m);
end
end
imshow(I,[]);
second step is not working, where is wrong? please help please find attachment
0 个评论
采纳的回答
KSSV
2017-8-7
clc;
clear all;
Imax=0.8;
Imin=0.2;
Im=Imax-Imin;
T = 20;
s1= @(x) ((2*Im*x/T)+Imin+Im/2).*(0<=x & x<=T/4) +((-2*Im*x/T)+Imin+3*Im/2).*(T/4<=x & x<=3*T/4)+((2*Im*x/T)+Imin-3*Im/2).*(3*T/4<=x & x<=T);
x = linspace(0, 20);
I1 = s1(x);
figure(1),plot(x,I1)
% second step (2D matrix image)
m=1000;
n=1000;
I = zeros(m,n) ;
for i=1:m
for j=1:n
s1= @(x) ((2*Im*x/T)+Imin+Im/2).*(0<=x & x<=T/4) +((-2*Im*x/T)+Imin+3*Im/2).*(T/4<=x & x<=3*T/4)+((2*Im*x/T)+Imin-3*Im/2).*(3*T/4<=x & x<=T);
I(i,j)=s1(j/n+i/m);
end
end
imshow(I,[]);
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!