Make a new variable based on data in the cell array.

I have a cell array called C. Each row in C has a different set of integerS stored as a cell
I wan to write a code such that it looks in each row/cell of C, if any integer in the row is equal to 1, it stores in the new variable x, the cell number.
I have the code:
x = [];
for i = 1:numel(C)
if any(C{i}==1)
x(i) = i; %store index of that cell %i know this line is the problem
end
end
problem is this creates length of x same as length of C with zeros in between. I dont want those zeros, instead just a vector of indices where a cell of C has the value 1.
for example right now, the out put is :
1 2 3 0 0 6
where as I want something like this:
1 2 3 6

 채택된 답변

Matt J
Matt J 2023년 6월 13일
편집: Matt J 2023년 6월 13일
x=[1 2 3 0 0 6]
x = 1×6
1 2 3 0 0 6
x=nonzeros(x)'
x = 1×4
1 2 3 6

추가 답변 (2개)

Matt J
Matt J 2023년 6월 13일
편집: Matt J 2023년 6월 13일
x=[1 2 3 0 0 6]
x = 1×6
1 2 3 0 0 6
x=x(x~=0)
x = 1×4
1 2 3 6
Matt J
Matt J 2023년 6월 13일
x=[1 2 3 0 0 6]
x = 1×6
1 2 3 0 0 6
x=x(logical(x))
x = 1×4
1 2 3 6

카테고리

도움말 센터File Exchange에서 Multidimensional Arrays에 대해 자세히 알아보기

제품

릴리스

R2023a

질문:

2023년 6월 13일

댓글:

2023년 6월 13일

Community Treasure Hunt

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

Start Hunting!

Translated by