필터 지우기
필터 지우기

input parser on a cell array

조회 수: 3 (최근 30일)
Paul Mitchell
Paul Mitchell 2023년 2월 27일
편집: Paul Mitchell 2023년 2월 27일
I have an input cell array example A = {'1234','4567','8901'}
I wish to user the input parser addParameter to check each entry is a string, and also each string is only composed of a set of 4 numbers
is there anyway in which to do this ? I have been searching Help and Answers but cannot find anything
Thank You

채택된 답변

Rik
Rik 2023년 2월 27일
You can implement a custom validationFcn to check your requirements, as you can read in the documentation.
A = {'1234','4567','8901'};
fcn = @(A) ...
iscellstr(A) && ...
size(vertcat(A{:}),2)==4 && ...
all(isstrprop([A{:}],'digit'));
fcn(A)
ans = logical
1
fcn({'1abc','1234'})
ans = logical
0
  댓글 수: 3
Rik
Rik 2023년 2월 27일
편집: Rik 2023년 2월 27일
From what I can tell from the documentation, a fail is interpreted as invalid input, so my function should work. Although it is indeed more elegant to have this function not fail.
If any of those chars is a column vector this code will still return an error.
So perhaps:
all(cellfun('size',A,2)==4) && all(cellfun('size',A,1)==1)
Paul Mitchell
Paul Mitchell 2023년 2월 27일
편집: Paul Mitchell 2023년 2월 27일
Rik / Stephen - Thank You both very much for taking the time to look at solving my issue. It is much appreciated. Rik your origonal post solved my problem perfectly.

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Simulink Functions에 대해 자세히 알아보기

태그

제품


릴리스

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by