Hi All,

I am just starting out with the k-wave toolbox and have begun working through the examples to get a grasp on the functionality. I immediately ran into issues when running the kspaceFirstOrder2D function getting the "Arrays have incompatible sizes for this operation." error multiple times from multiple examples.

Listed below are the scripts I have run to get the errors.

%% ----- %%

From the User Manual:

% create the computational grid

Nx = 128; % number of grid points in the x (row) direction

Ny = 256; % number of grid points in the y (column) direction

dx = 50e-6; % grid point spacing in the x direction [m]

dy = 50e-6; % grid point spacing in the y direction [m]

kgrid = makeGrid(Nx, dx, Ny, dy);

% define the medium properties

medium.sound_speed = 1500*ones(Nx, Ny); % [m/s]

medium.sound_speed(1:50, :) = 1800; % [m/s]

medium.density = 1040; % [kg/m^3]

% define an initial pressure using makeDisc

disc_x_pos = 75; % [grid points]

disc_y_pos = 120; % [grid points]

disc_radius = 8; % [grid points]

disc_mag = 3; % [Pa]

source.p0 = disc_mag*makeDisc(Nx, Ny, disc_x_pos, disc_y_pos, disc_radius);

% define a Cartesian sensor mask of a centered circle with 50 sensor elements

sensor_radius = 2.5e-3; % [m]

num_sensor_points = 50;

sensor.mask = makeCartCircle(sensor_radius, num_sensor_points);

% run the simulation

sensor_data = kspaceFirstOrder2D(kgrid, medium, source, sensor);

From the MATLAB Examples Site:

% create the computational grid

Nx = 128; % number of grid points in the x (row) direction

Ny = 128; % number of grid points in the y (column) direction

dx = 0.1e-3; % grid point spacing in the x direction [m]

dy = 0.1e-3; % grid point spacing in the y direction [m]

kgrid = kWaveGrid(Nx, dx, Ny, dy);

% define the properties of the propagation medium

medium.sound_speed = 1500; % [m/s]

medium.alpha_coeff = 0.75; % [dB/(MHz^y cm)]

medium.alpha_power = 1.5;

% create initial pressure distribution using makeDisc

disc_magnitude = 5; % [Pa]

disc_x_pos = 50; % [grid points]

disc_y_pos = 50; % [grid points]

disc_radius = 8; % [grid points]

disc_1 = disc_magnitude * makeDisc(Nx, Ny, disc_x_pos, disc_y_pos, disc_radius);

disc_magnitude = 3; % [Pa]

disc_x_pos = 80; % [grid points]

disc_y_pos = 60; % [grid points]

disc_radius = 5; % [grid points]

disc_2 = disc_magnitude * makeDisc(Nx, Ny, disc_x_pos, disc_y_pos, disc_radius);

source.p0 = disc_1 + disc_2;

% define a centered circular sensor

sensor_radius = 4e-3; % [m]

num_sensor_points = 50;

sensor.mask = makeCartCircle(sensor_radius, num_sensor_points);

% run the simulation

sensor_data = kspaceFirstOrder2D(kgrid, medium, source, sensor);

%% ----- %%

What is interesting is that running Program 1 from page 3 of Treeby et al. (http://bug.medphys.ucl.ac.uk/papers/2014-Treeby-IEEEIUS.pdf) leads to no errors and a properly run simulation.

Any help would be greatly appreciated!

Sincere Thanks,

SJM212