- find is not required and is just slows the code down. Logical indexing is faster.
- there is no point creating a matrix of ones when you want a matrix of NaNs.
- allocating the index variable just clutters the workspace and slows the code.
Adding Data to an Existing Nx1 Double
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Conor J Crickmore
el 5 de Mayo de 2017
Comentada: Conor J Crickmore
el 5 de Mayo de 2017
Hello everyone. I have a 257x1 double that I need to add zero values to at set locations without removing the pre-existing data, in essence expanding the double to a 264x1.
I've been searching through existing answers but am still not quite getting it due to most cases involving NxM matrices as opposed to having a single column.
Thanks for your help Conor
EDIT -------------- After some additional searching I found a method that solves my problem but I am still curious if it is the most efficient, here is my finished code:
U = ones (264,1);
U (:) = NaN;
U ([9;37;38;39;49;50;51]) = 0;
URLocations = find (isnan (U));
U (URLocations) = UR;
0 comentarios
Respuesta aceptada
Stephen23
el 5 de Mayo de 2017
Editada: Stephen23
el 5 de Mayo de 2017
Simplified a little:
U = nan(264,1);
U([9;37;38;39;49;50;51]) = 0;
U(isnan(U)) = UR;
An alternative ( I have no idea if this will be faster, you should time them with timeit ):
U = zeros(264,1);
U(setdiff(1:264,[9;37;38;39;49;50;51]) = UR;
Más respuestas (0)
Ver también
Categorías
Más información sobre Logical 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!