String with mask parameter

4 Ansichten (letzte 30 Tage)
julien dannenmayer
julien dannenmayer am 7 Okt. 2022
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?

Akzeptierte Antwort

Matt J
Matt J am 7 Okt. 2022
Bearbeitet: Matt J am 7 Okt. 2022
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 Kommentare
julien dannenmayer
julien dannenmayer am 10 Okt. 2022
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 am 10 Okt. 2022
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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Produkte


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by