Avoide imaginary part in cell matrix
    6 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    EldaEbrithil
 il 13 Ott 2020
  
    
    
    
    
    Commentato: Ameer Hamza
      
      
 il 14 Ott 2020
            Hi all 
i have  a cell matrix A  like that:
val(:,:,1,1,1) = 
  Columns 1 through 10
    {n×2 double}    {n×2 double}    {n×2 double}    {n×2 double}    {n×2 double}    {n×2 double}    {n×2 double}    {n×2 double}    {n×2 double}    {n×2 double}
  Columns 11 through 20
    {n×2 double}    {n×2 double}    {n×2 double}    {n×2 double}    {n×2 double}    {n×2 double}    {n×2 double}    {n×2 double}    {n×2 double}    {n×2 double}........
i want to obtain another cell matrix with the same global dimension of the previous one but with only the first column values: so i want to obtain a matrix where each cell has dimension equal to {nx1} . I also want to estrapolate from A only those cells that contain elements with imaginary part less than 0.1 setting to zero all the cells that don't satisfy this condition. Is there an easy way for doing that?
Thank you for the help
Regards
0 Commenti
Risposta accettata
  Ameer Hamza
      
      
 il 13 Ott 2020
        
      Modificato: Ameer Hamza
      
      
 il 13 Ott 2020
  
      Here is the solution to the first part
A; % 1x20 cell array
A_new = cellfun(@(x) {x(:,1)}, A);
All cell in A_new will contain first column of matrices in A.
I didn't understand the 2nd question related to setting the imaginary part to zero.
7 Commenti
  Ameer Hamza
      
      
 il 14 Ott 2020
				Ok. Following should work in this case
A; % 1x20 cell array
A_new1 = cellfun(@(x) {x(:,1)}, A); % only contain 1st columns
A_new2 = cellfun(@(x) {x.*(imag(x)<0.1)}, A_new1); % set the rows which does not satisfy the imaginary number conditions to 0.
Più risposte (0)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

