Combining results of a 3D array
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Jonathan
el 26 de Mzo. de 2020
Comentada: James Tursa
el 26 de Mzo. de 2020
Hi everyone,
I have a series of ND arrays of the same size filled with zeroes and ones. I want to combine the array with the following rules:
If at the X and Y position for all arrays there is a zero, the final array will be a zero. If there is a 1 at any location, the final array will have a 1 at that location.
However, I am getting an error message of 'Attempt to grow array along ambiguous dimension.
This is the logic of the code I have so far:
% Assuming S is an array of arrays (implies M x N x P)
% M - number of rows
% N - number of columns
% P - number of such matrices
p = 1;
while (some condition holds true)
S(:,:,p) = (M - y).^2 + (N - x).^2 <= radius.^2;
p = p+1;
update_of_condition;
end
D = zeros(M,N);
index1Loc = sum(S,p-1) ~= 0;
D(index1Loc) = 1; %this is where the error of 'Attempt to grow array along ambiguous dimension.' occurs
0 comentarios
Respuesta aceptada
James Tursa
el 26 de Mzo. de 2020
Is any(S,3) what you want?
2 comentarios
James Tursa
el 26 de Mzo. de 2020
Use a small example and see if it does what you want. The result will be a 1 if any of the 3D spots is a 1, and 0 otherwise.
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrices and Arrays en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!