MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by Jess
on 15 Feb 2013

Hi all,

I've been trying to rewrite a line of Matlab code so that I can convert the code into C using Matlab Coder. The original line was this:

my_index = cellfun(@(x)~isempty(x),regexp({my_results.name},'my_string'));

At the moment the code I've got to do the same as the line above is:

n = numel(my_results); my_results = false(n,1); for ii = 1:n my_results(ii) = coder.ceval(strstr(my_results(ii).name,'my_string')); end len_new_my_results = length(new_my_results); for ii = len_new_my_results:-1:1 my_index(ii) = ~isempty(new_my_results{ii}); end

This however is giving me an error saying "Improper index matrix referencing" at the line my_results(ii) = coder.ceval(strstr(my_results(ii).name,'my_string'));

I have tried reading up about what it means and I think it has something to do with a variable being an input to a function (this is true in my case, my_results is an input to the function where this piece of code is)? Is there a way to get around it?

Any pointers in the right direction will be greatly appreciated. Thank you.

*No products are associated with this question.*

Answer by Sean de Wolski
on 15 Feb 2013

Looking at:

doc coder.ceval

*coder.ceval('cfun_name', cfun_arguments)*

So above the correct syntax looks like it would be:

coder.ceval('strstr',my_results(ii).name,'my_string')

I.e. first the name of the C function, then the two inputs to it.

Sean de Wolski
on 15 Feb 2013

Are you trying to run it in matlab or is that in the generated code/mex file etc?

## 1 Comment

## Randy Souza

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/63600#comment_130717

I have restored the original text of this question.

Evelina, this question has a clear subject and answer, so it may be valuable to someone else in the future. If you have a good reason why it should be removed from MATLAB Answers, please flag the question, explain why it should be deleted, and an administrator or high-reputation contributor will consider deleting the question. Please

do notsimply edit your question away.