# Is there a way to "vectorize" this segment of code?

1 view (last 30 days)
David Rikert on 10 Feb 2024
Commented: David Rikert on 10 Feb 2024
% turn each of these string array rows into integers
[rows,cols] = size(permsList);
permsNbrs = zeros(rows,1);
a = string(permsList); % convert to string, so we can use strcat
for i = 1:rows
b = "";
for j = 1:cols
b = strcat(b,a(i,j));
end % for j
permsNbrs(i,1) = str2double(b);
end % for i
Matt J on 10 Feb 2024
We don't have the input permsList, so we do not know what anything is.

Stephen23 on 10 Feb 2024
Moved: Matt J on 10 Feb 2024
S = string(randi([0,9], 5,4))
S = 5×4 string array
"0" "4" "8" "8" "6" "1" "1" "3" "8" "2" "6" "7" "2" "8" "5" "5" "7" "2" "6" "6"
D = str2double(join(S,""))
D = 5×1
488 6113 8267 2855 7266
David Rikert on 10 Feb 2024
Very clean. Thank you.

Matt J on 10 Feb 2024
Edited: Matt J on 10 Feb 2024
I'm going to guess that this is what you are trying to do.
permsList=string(randi([0,9], 5,4))
permsList = 5×4 string array
"5" "0" "3" "3" "1" "6" "6" "9" "4" "9" "5" "9" "5" "3" "2" "3" "8" "7" "7" "0"
permsNbrs = str2double(permsList)*10.^( width(permsList)-1:-1:0)'
permsNbrs = 5×1
5033 1669 4959 5323 8770
David Rikert on 10 Feb 2024
Thanks. Exactly what I was looking for.
Matt J on 10 Feb 2024
You're quite welcome, but please Accept-click the answer (green button) to indicate so.

### Categories

Find more on Programming in Help Center and File Exchange

R2023b

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!