Add new elements into cell array inside a loop
조회 수: 157 (최근 30일)
이전 댓글 표시
Hello all!
I I have a set of 10000 values and according to the thresholds I am setting I want to seperate them into individual matrices that would be inside the cell. The matrices elements are distributed trough a loop as above:
for i=1:1:length(TestData)
for k=1:1:4
if TestData(i,3)>=low(k,1) && TestData(i,3)<=high(k,1)
CreatedCell{k}=TestData(i,:);
end
end
end
So how could I store my data into the cell and create multiple matrices? With the way I am doing it now it stores only the last value but I need to store the whole matrices.
댓글 수: 3
Guillaume
2019년 1월 14일
The first issue is that you're using length as a synonym for the number of rows on something that is clearly a matrix. length returns the number of rows or columns, whichever is greater, so you're taking a risk. It would be much better to use size(TestData, 1) to ensure you always get the number of rows.
What does it doesn't work mean? If you get an error, what is the full text of the error? If you don't get the result you expect, then what exactly did you expect and what did you get instead.
답변 (1개)
Stephen23
2019년 1월 14일
편집: Stephen23
2019년 1월 14일
This will store the data each iteration of both loops (but I did not change the logical conditions):
N = size(TestData,1); % much better than length
C = cell(N,4);
for ii = 1:N
for jj = 1:4
if TestData(ii,3)>=low(jj,1) && TestData(ii,3)<=high(jj,1)
C{ii,jj} = TestData(ii,:);
end
end
end
Note that this can create copies of the same data in the cell array. This may or may not be what you expect (it is not clear from your question).
댓글 수: 4
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!