필터 지우기
필터 지우기

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

조회 수: 1 (최근 30일)
David Rikert
David Rikert 2024년 2월 10일
댓글: David Rikert 2024년 2월 10일
% 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
Matt J
Matt J 2024년 2월 10일
We don't have the input permsList, so we do not know what anything is.

댓글을 달려면 로그인하십시오.

채택된 답변

Stephen23
Stephen23 2024년 2월 10일
이동: Matt J 2024년 2월 10일
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

추가 답변 (1개)

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

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

태그

제품


릴리스

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by