How do i make this code as simple as possible? :(
    15 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Jungwu Kim
 el 30 de Dic. de 2020
  
    
    
    
    
    Comentada: Jungwu Kim
 el 31 de Dic. de 2020
            final_0 = 0;
final_1 = final(numel(final_0)+1:(floor(numel(final)*1/10))*1);
final_2 = final(floor(numel(final)*1/10)*1+1:floor(numel(final)*1/10)*2);
final_3 = final(floor(numel(final)*1/10)*2+1:(floor(numel(final)*1/10))*3);
final_4 = final(floor(numel(final)*1/10)*3+1:(floor(numel(final)*1/10))*4);
final_5 = final(floor(numel(final)*1/10)*4+1:(floor(numel(final)*1/10))*5);
final_6 = final(floor(numel(final)*1/10)*5+1:(floor(numel(final)*1/10))*6);
final_7 = final(floor(numel(final)*1/10)*6+1:(floor(numel(final)*1/10))*7);
final_8 = final(floor(numel(final)*1/10)*7+1:(floor(numel(final)*1/10))*8);
final_9 = final(floor(numel(final)*1/10)*8+1:(floor(numel(final)*1/10))*9);
final_10 = final(floor(numel(final)*1/10)*9+1:floor(numel(final)));
I think anyone who has studied a little bit can make it simple, but I'm not
For your information, the class of those codes is char.
The size of one data is so large that you want to split it into 10 pieces.
Please let me know, and if you have time, I would like to know if this code can be expressed in loop. :((((((((
0 comentarios
Respuesta aceptada
  Ameer Hamza
      
      
 el 30 de Dic. de 2020
        First, naming variables like final_1, final_2, ... is a bad coding practise: https://www.mathworks.com/matlabcentral/answers/304528-tutorial-why-variables-should-not-be-named-dynamically-eval. Always use arrays. In your case, cell arrays are most appropriate.
You can write the code in a single line like this
final = .. % your arrat
final_split = mat2cell(final, 1, numel(final)/10*ones(1,10))
5 comentarios
  Ameer Hamza
      
      
 el 31 de Dic. de 2020
				
      Editada: Ameer Hamza
      
      
 el 31 de Dic. de 2020
  
			Just use indexing to access each element of the cell array. There is no need to create seperate variables. For example
final_split{1}   % access first element
final_split{2}   % access second element
..
..
final_split{end} % access last element
Más respuestas (1)
  Walter Roberson
      
      
 el 30 de Dic. de 2020
        buffer(final, floor(numel(final)/10)).'
Needs the signal processing toolbox.
The final (11th) row will contain 110227 entries only the first two of which will be nonblank. You might want to consider using ceil instead of floor which will get you 10 rows the last of which has 8 padding positions.
Ver también
Categorías
				Más información sobre Logical en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!