How can I add NaNs to a cell array in positions that match the positions of NaNs in a separate matrix?
Ältere Kommentare anzeigen
I have a matrix (A) containing some NaNs. I also have a cell array (B) with no NaNs, containing script in every element.
Where NaNs exist in A, I also want NaNs to appear in B.
Below is my failed attempt to do this. The final line of the script results in an error: "Conversion to cell from double is not possible." Any advice would be much appreciated.
A = rand(2); % matrix
A(1,2) = NaN
B = {'fred' 'wilma'; % cell array
'barney' 'betty'};
nan_locations = find(isnan(A)); % index location of NaNs in A
B(nan_locations) = NaN % in B insert NaNs in same locations as A
Akzeptierte Antwort
Weitere Antworten (1)
Vishal Rane
am 5 Dez. 2012
Use
B{isnan(A)} = NaN
5 Kommentare
Vishal Rane
am 5 Dez. 2012
What you were trying to do was replace an entire cell ( () indexing ) in B by NaN. What you must do is replace the contents ( {} indexing ) of that cell by a NaN.
Mark
am 5 Dez. 2012
Vishal Rane
am 5 Dez. 2012
Check if A and B are of identical size.
Mark
am 5 Dez. 2012
Vishal Rane
am 5 Dez. 2012
Above method will give error if there are no NaN values in A.
Post your code if possible.
Kategorien
Mehr zu Operators and Elementary Operations finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!