필터 지우기
필터 지우기

Can I move the contains function from Matlab 2017b to Matlab 2014b?

조회 수: 2 (최근 30일)
Hello,
I am facing a Matlab compatability issue regarding the contains function. I wrote a script using Matlab 2017b but want to give it to a user group who only has access to 2014b.
The main back-compatability issue is that I use the contains function to find all indices of a text-based cell vector matching a string (e.g. indices = contains(cellVec, 'string')). I then reduce a different but identically-sized cell vector using those indices (e.g. cellVec2 = cellVec2(indices)). This was working very effectively for my needs and avoids any loops. Unfortunately, I need to find a way to replace all of these contains calls - I looked into using indices = ~isempty(strfind(cellVec,'string')) but this yields a single result instead of a numeric vector of results.
Since my computer has 2014b and 2017b, is there anything I can do to poach the 2017b contains function in a way that is usable by 2014b, or can I use strfind or another function to produce a numeric vector of indices while avoiding loops?
Thanks, Charlie
  댓글 수: 2
Walter Roberson
Walter Roberson 2019년 12월 5일
contains is part of the string() datatype upgrades; it relies on functionality that did not exist in R2014b
Adam Danz
Adam Danz 2019년 12월 5일
You could write your own function with the same name.
Maybe strcmp() or strcmpi() would suit your needs.

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

채택된 답변

Charles Arentzen
Charles Arentzen 2019년 12월 5일
Thanks guys, good to know. I see what you mean on the updated string datatype, so trying to port over contains is definitely not a viable path.
I was able to solve the issue by using cellfun to produce a vector output:
indices = 1-cellfun('isempty',strfind(cellVec,'string'))

추가 답변 (0개)

카테고리

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

태그

제품


릴리스

R2014b

Community Treasure Hunt

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

Start Hunting!

Translated by