On my project, I am using a sub-system with a mask which takes a string as a parameter (typically called "topic_name").
Up to now that topic_name is always populated manually (i.e. typing the string whenever we create a new IO).
However, this is time consuming to maintain a system with multiple occurences where just a number changes in the string.
e.g. for the iteration of my "item1", I map various sub-systems with strings "item1/pump1", "item1/pump2", "item1/cold_valve", "item1/hot_valve"... Then I need to do the same with "item2", mapping strings "item2/pump1", "item2"/pump2", "item2/cold_valve", "item2/hot_valve". And so on with item3, item4, etc.
In short this is a nightmare to maintain, and since all items have the same structure, I would like to create a library block using a mask parameter "item_number" so that I can create the mapping once for pump1, pump2, cold_valve, hot_valve, then just populate the item_number for all the instances of item.
Can anyone explain what the syntax would be for itemitem_number/pump1?

 채택된 답변

Matt J
Matt J 2022년 10월 7일
편집: Matt J 2022년 10월 7일

0 개 추천

For example,
"item" + (0:3)' + "/" + ["pump1" "pump2" "cold_valve" "hot_valve"]
ans = 4×4 string array
"item0/pump1" "item0/pump2" "item0/cold_valve" "item0/hot_valve" "item1/pump1" "item1/pump2" "item1/cold_valve" "item1/hot_valve" "item2/pump1" "item2/pump2" "item2/cold_valve" "item2/hot_valve" "item3/pump1" "item3/pump2" "item3/cold_valve" "item3/hot_valve"

댓글 수: 2

julien dannenmayer
julien dannenmayer 2022년 10월 10일
Thanks Matt,
However, due to other constraints, I would need " (0:3)' " to be a function argument or a parameter, so that I can write something like
"item" + item_ number + "pump1"
When I try that, I get error "Convertion to uint8 from string is not possible". And if I for item_number to be a string input, I get error "Arrays have incompatible sizes for this operation".
It's like all the basics of string manipulation (including https://nl.mathworks.com/help/matlab/matlab_prog/converting-from-numeric-to-string.html) are discarded...
julien dannenmayer
julien dannenmayer 2022년 10월 10일
For info, I figured that the external library block that I was using required this string to be a char type.
After typecasting, I could get it to work

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Characters and Strings에 대해 자세히 알아보기

제품

릴리스

R2021b

질문:

2022년 10월 7일

댓글:

2022년 10월 10일

Community Treasure Hunt

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

Start Hunting!

Translated by