# Array indices must be positive integers or logical values.

3 views (last 30 days)
tianxing huang on 24 Jan 2023
Answered: Image Analyst on 24 Jan 2023
i want implement the a gaussian Input in rectangle form and in circle form, sorry i dont know why first a worked, but seconed a not. The error is: ''Array indices must be positive integers or logical values''. Can someone help me
%% Parameter setup
L_x = 130e-6;
L_y = 330e-6;
dx_coarse = .5e-6; % Step coarse for fine step
dy_coarse = .5e-6; % Step coarse for fine step
x = -L_x/2 :dx_coarse : L_x/2;
y = -L_y/2 :dy_coarse : L_y/2;
y_coupcenter = 0;
x_coupcenter = 0;
n = ones(length(y),length(x))*n_glass;
n_dim = size(n);
length = 20; % um
width = 20; % um
GaussInput = 1*exp(-xg1.^2/(2*(sigma_x))^2 -yg1.^2/(2*(sigma_y))^2); % Definition of gaussian beam
% circle: a work
rad_coup = 25e-6;
Excitation.coup_center = [y((length(y)+1)/2 + y_coupcenter*1e6),x((length(x)+1)/2 + x_coupcenter*1e6)];
Excitation.gausscoup = sqrt((xg(:,:,1)-Excitation.coup_center(2)).^2+(yg(:,:,1)-Excitation.coup_center(1)).^2)<=rad_coup;
a = GaussInput(Excitation.gausscoup);
% rectangle: a not work
Excitation.gausscoup = zeros(length(y),length(x));
Excitation.gausscoup((n_dim(1)+1)/2 - y_coupcenter*1e6 - length/(2*dy_coarse*1e6): (n_dim(1)-1)/2 - y_coupcenter*1e6 + length/(2*dy_coarse*1e6), (n_dim(2)+1)/2 - x_coupcenter*1e6 - width/(2*dx_coarse*1e6) :(n_dim(2)-1)/2 - x_coupcenter*1e6 + width/(2*dx_coarse*1e6)) = 1;
a = GaussInput(Excitation.gausscoup); % Array indices must be positive integers or logical values.
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Accepted Answer

tianxing huang on 24 Jan 2023
ok, i add a logical() function, its worked:
Excitation.gausscoup=logical(Excitation.gausscoup);
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### More Answers (1)

Image Analyst on 24 Jan 2023
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Categories

Find more on Earth and Planetary Science in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by