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

1 visualización (últimos 30 días)
David Rikert
David Rikert el 10 de Feb. de 2024
Comentada: David Rikert el 10 de Feb. de 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
  1 comentario
Matt J
Matt J el 10 de Feb. de 2024
We don't have the input permsList, so we do not know what anything is.

Iniciar sesión para comentar.

Respuesta aceptada

Stephen23
Stephen23 el 10 de Feb. de 2024
Movida: Matt J el 10 de Feb. de 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

Más respuestas (1)

Matt J
Matt J el 10 de Feb. de 2024
Editada: Matt J el 10 de Feb. de 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
  2 comentarios
David Rikert
David Rikert el 10 de Feb. de 2024
Thanks. Exactly what I was looking for.
Matt J
Matt J el 10 de Feb. de 2024
You're quite welcome, but please Accept-click the answer (green button) to indicate so.

Iniciar sesión para comentar.

Categorías

Más información sobre Programming en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by