- 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 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Conor J Crickmore
am 5 Mai 2017
Kommentiert: Conor J Crickmore
am 5 Mai 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 Kommentare
Akzeptierte Antwort
Stephen23
am 5 Mai 2017
Bearbeitet: Stephen23
am 5 Mai 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;
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!