How to build on an existing struct 4x4xn matrix?
    7 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Happy PhD
 el 28 de Abr. de 2020
  
    
    
    
    
    Comentada: Rik
      
      
 el 28 de Abr. de 2020
            I have an struct, for example...
A = struct(); 
where we have a 4x4 matrix 
A.G = rand(4,4); 
I want to build on values within the (4x4) matrix but stack new values in a n'th dimension. 
How do I build on the maxtrix in the n'th dimesnion if I don't know how many non-zero values exist in respective field A.G(1,1,n), A.G(1,2,n), A.G(2,2.n) and A.G(4,4,n). the n't value can stack randomly. I wan't to know how many non-zero values lies behind for example A.G.(1,2,n) where n is a unkown value depending how many values i already put into A.G(1,2,n), which i don't keep track on.  
4 comentarios
  Mrutyunjaya Hiremath
      
 el 28 de Abr. de 2020
				Hello Happy PhD,
do you want to add next value where there are 0's are there?
Respuesta aceptada
  Mrutyunjaya Hiremath
      
 el 28 de Abr. de 2020
        Hello Happy PhD,
Try this one...
clc;
clear all;
A.G(:,:,1) = [1 2 1 1 ; 4 9 5 6 ];
A.G(:,:,2) = [0 1 0 0; 0 6 0 0];
A.G(:,:,3) = [0 5 0 0; 0 0 0 0];
N = 10; % random number 
idx = find(A.G == 0);
if ~isempty(idx)
    A.G(idx(1)) = N;
else
    n = size(A.G,3);
    A.G(1,1,n+1) = N;
end
disp(A.G);
0 comentarios
Más respuestas (1)
  Rik
      
      
 el 28 de Abr. de 2020
        It sounds like you can just assign that value. Matlab will expand the array and fill empty positions with 0.
A.G=cat(3,[ 1 2 0 1 ; 4 9 5 6 ], [ 0 1 0 0; 0 6 0 0],[0 5 0 0; 0 0 0 0 ]);
A.G(1,2,4)=8;%Matlab fills the 4th page with zeros
disp(A.G)
2 comentarios
  Rik
      
      
 el 28 de Abr. de 2020
				You can find the first empty page like this:
[r,c,val]=deal(1,2,8);
A.G=cat(3,[ 1 2 0 1 ; 4 9 5 6 ], [ 0 1 0 0; 0 6 0 0],[0 5 0 0; 0 0 0 0 ]);
N_by_rc=sum(logical(A.G),3)+1;
n=N_by_rc(r,c);
A.G(r,c,n)=val;
clc,disp(A.G)
Ver también
Categorías
				Más información sobre Data Distribution Plots en Help Center y File Exchange.
			
	Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


