Info

この質問は閉じられています。 編集または回答するには再度開いてください。

Substring block returns incorrect value

2 ビュー (過去 30 日間)
Scott
Scott 2018 年 5 月 10 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
Problem
I'm trying out the new "String" blocks available in R2018 and have found some behaviour that I can't explain. I'm trying to extract values from a string that I've created which looks like "D = (500,500,500). I've tried to do this inside a masked subsystem. Parameters for it are prefix (the symbol that indicates the start of the data I'm interested in), offset (how far after the prefix is the first character to return), num_chars (how many characters to return)
In order to get the first value I find the index of the "(" symbol using the String Find block, add an offset (of 1) to the index and then use the Substring block to get three characters from the string starting at the specified index. However sometimes this correctly returns "500" other times it returns "00,".
How I've been able to replicate the issue
If I change the value of the offset to zero it correctly returns "(50".
I then change the offset back to 1 and it correctly returns "500", result of the addition of the offset is 6 is this time.
The next time I run the simulation, it incorrectly returns "00," again. Result of the addition of the offset is now 7.
The output of the String Find block seems to change despite the string nor the substring changing.
Any ideas? Is this a bug?

回答 (1 件)

Arvindhan Sayapathy
Arvindhan Sayapathy 2018 年 5 月 18 日
I am a MathWorks staff. This is a bug and I have forwarded this feedback to the relevant team.
  1 件のコメント
Scott
Scott 2018 年 5 月 21 日
Thanks for reporting it.

製品


リリース

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by