How do i make this code as simple as possible? :(
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Jungwu Kim
am 30 Dez. 2020
Kommentiert: Jungwu Kim
am 31 Dez. 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 Kommentare
Akzeptierte Antwort
Ameer Hamza
am 30 Dez. 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 Kommentare
Ameer Hamza
am 31 Dez. 2020
Bearbeitet: Ameer Hamza
am 31 Dez. 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
Weitere Antworten (1)
Walter Roberson
am 30 Dez. 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.
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!