ho to change cell array elemen value to Nan, when using gpuarray?
    2 views (last 30 days)
  
       Show older comments
    
    Mantas Vaitonis
 on 19 Jun 2018
  
    
    
    
    
    Commented: Mantas Vaitonis
 on 19 Jun 2018
            Hello Everyone,
Maybe somebody has a solution for this case? I have gpu cellarray with 1x499 and cells within 5x5. I would like to find zeros and change them to Nan. What I managed to do is here:
SQ=cellfun(@(x)(x==0,NaN,x), SQ,'UniformOutput',false);
Accepted Answer
  Edric Ellis
    
      
 on 19 Jun 2018
        Instead of a 1x499 cell array of 5x5 gpuArray matrices, why not consider a 5x5x499 array. You can convert your existing cell array like this:
SQ_array = cat(3, SQ{:}); % concatenate in 3rd dimension, result is 5x5x499
Then, you can simply do:
SQ_array(SQ_array == 0) = NaN;
cellfun(@(x) standardizeMissing(x, 0), SQ, 'UniformOutput', false)
3 Comments
  Edric Ellis
    
      
 on 19 Jun 2018
				mat2cell(SQ_array, 5, 5, ones(1, 499))
but really, I suspect you'd be much better off retaining the array form if you can. A 5x5 matrix is usually much too small for the GPU to offer much benefit - you need to keep your GPU busy by feeding it lots of data all at once in a single array-based operation. You've got a much better chance with a 5x5x499 array.
More Answers (0)
See Also
Categories
				Find more on GPU Computing in MATLAB in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
