How to select matrix elements along aritrary angle i.e (Any angle between 0 and 90 degree except 0,90,45 deg ) ?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
# clear all;
# clc;
# close all;
# [kx,ky]=meshgrid(-1:2/21:1);
#
# circ=sqrt(kx.^2+ky.^2)<1;
# alp=asin(0.95);
#
# k0=1/sin(alp);
# kz=sqrt(k0^2-(kx.^2+ky.^2));
# GX=sqrt(k0./kz).*((k0*ky.^2+kz.*kx.^2)./(k0*(kx.^2+ky.^2)));
# GY=sqrt(k0./kz).*((kz-k0).*kx.*ky)./(k0*(kx.^2+ky.^2));
# GZ=-sqrt(k0./kz).*(kx/k0);
#
# k=256;
# ph=(pi+atan2(kx,ky));
# ph=rot90(ph,3);
#
# la=cos(ph);
# lb=rot90(sin(ph), 3);
# EX=(GX.*la-rot90(GY.*lb, 3));
# EFx=fftshift(fft2(EX.*circ, k, k));
# Ix=EFx.*conj(EFx);
# EY=(GY.*la+rot90(GX.*lb, 3));
# EFy=fftshift(fft2(EY.*circ, k, k));
# Iy=EFy.*conj(EFy);
# EZ=(GZ.*la+rot90(GZ.*lb, 3));
# EFz=fftshift(fft2(EZ.*circ, k, k));
# Iz=EFz.*conj(EFz);
#
# Ir=Ix+Iy;
# I1=Ix+Iz+Iy;
#
# figure(5)
# imagesc(abs(I1)),colormap gray;axis image; axis off;
# % along central row and column
# figure(6)
# plot(I1(:,k/2),'linewidth',2)
# figure(7)
# plot(I1(:,k/2),'linewidth',2)
# % along diagonal
# figure(8)
# plot(I1(1:k+1:k^2))
Hi here I have plotted intensity(I1)long diagonal and central row and
column. i.e at 45,0,90 degrees. Now I want to plot intensity along any
arbitrary angle 10,30,60 degrees can any one help me in this regard,
it is great help for me
thanking you in advance
0 comentarios
Respuestas (1)
Walter Roberson
el 11 de Ag. de 2013
improfile() if you have the Image Processing Toolkit. If not, there are ways to proceed with interp1(). You need to decide, though, how much of a pixel needs to be "touched" for you to want to include the pixel in the plot.
2 comentarios
Image Analyst
el 11 de Ag. de 2013
With improfile, you specify the endpoints - the x,y coordinates of the end of the line. 10th grade math will let you figure those out given an angle and a point (hint: use the point-slope formula of a line). For interp1 you need to specify all the coordinates, but you can get by with just the end points if you do something like one of these:
xCoords = x1 : xStep : x2;
xCoords = linspace(x1, x2, numberOfSamplesAlongTheLine);
Do the same thing for y of course!
Ver también
Categorías
Más información sobre Surface and Mesh Plots en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!