Split a string into 4 character groups?
20 views (last 30 days)
I am writing a program as part of my foundation degree which takes messages and encrypts them in a basic way. So far I have used a .txt file encoded in the ASCII format and maniuplated each character to output a single line string based upon the length of the original message:
the variable 'number_message' is the output variable in my code. As this string could potentially be any length (n), how can I reliably split this output string into groups of characters for further processing?
My program design is to use multiple layers and I want to group at this stage to deal with the data in groups before moving on to a potential HEX conversion.
I am quite new to Matlab, and coding in general so this may seem like a bit of a strange question and may not make sense.
per isakson on 24 Apr 2021
Edited: per isakson on 24 Apr 2021
"Split a string into 4 character groups?", "split this output string into groups of characters" and "I want to group at this stage to deal with the data in groups"
%% cssm.txt contains the text of your question
chr = fileread( 'cssm.txt' );
%% replace line breaks with spaces
chr = strrep( chr, char(13), '' );
chr = strrep( chr, newline, char(32) );
group_len = 4;
len = numel( chr );
d = rem( len, group_len );
chr = horzcat( chr, repmat( char(32), 1, group_len-d ) );
chr = reshape( chr, 4, );
chr(:,1:12) % the groups are column wise
%% easier to read, but somewhat less efficient
chr = permute( chr, [2,1] );
chr(1:12,:) % the groups are row wise