Effacer les filtres
Effacer les filtres

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

1 vue (au cours des 30 derniers jours)
David Rikert
David Rikert le 10 Fév 2024
Commenté : David Rikert le 10 Fév 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 commentaire
Matt J
Matt J le 10 Fév 2024
We don't have the input permsList, so we do not know what anything is.

Connectez-vous pour commenter.

Réponse acceptée

Stephen23
Stephen23 le 10 Fév 2024
Déplacé(e) : Matt J le 10 Fév 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

Plus de réponses (1)

Matt J
Matt J le 10 Fév 2024
Modifié(e) : Matt J le 10 Fév 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 commentaires
David Rikert
David Rikert le 10 Fév 2024
Thanks. Exactly what I was looking for.
Matt J
Matt J le 10 Fév 2024
You're quite welcome, but please Accept-click the answer (green button) to indicate so.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Produits


Version

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by