MATLAB cannot call or index into a temporary array in for loop

4 views (last 30 days)
Hello Friends,
Here is my code:
M = {'a', 'b', 'c'};
for i = length(M)
M(i) = M(i)(M(i)~=0);
end
In other words, I am trying to get for each vector 'a', 'b', and 'c' the following in for loop:
a = a(a~=0);
b = b(b~=0);
c = c(c~=0);
I get the following error: "cannot call or index into a temporary array"
I will appreciate any advice.

Answers (2)

Azzi Abdelmalek
Azzi Abdelmalek on 17 May 2016
I don't know what you want, your example is not appropriate, comparing letters with 0!
A=[1 2 0 5 0 7]
B=A(A~=0)
  1 Comment
hello_world
hello_world on 17 May 2016
Edited: hello_world on 17 May 2016
I have a cell array, and I want to remove 0 entries from M. I want to do it for each 'a', 'b' and 'c' in for loop. In other words, it will be
a = a(a~=0);
b = b(b~=0);
c = c(c~=0);

Sign in to comment.


Walter Roberson
Walter Roberson on 18 May 2016

Community Treasure Hunt

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

Start Hunting!