필터 지우기
필터 지우기

Iterate through matrix until no more possible calculations.

조회 수: 2 (최근 30일)
DuckDuck
DuckDuck 2014년 11월 19일
답변: Thorsten 2014년 11월 19일
I have an array that shortens up every time i do an iteration. But how do i know when there are no more possible calculations to be done and the size of the array cannot be shortened up any more. i'm thinking using while loop but don't know how to check it. Any help please.
Suppose i have a matrix
a=[1,2;
1,3;
1,4;
2,12;
2,15;
5,7;
5,8;
6,98;
6,99;
7,8;
7,9;
7,11;
9,14;
9,16;
12,18;
14,20;
20,35;
98,102;
99,204;
204,300;
301,305;
308,400];
every time i do an iteration i remove the elements of one of the arrays below. first
b=[1,2,3,4,12,15,18],
then
c=[5,7,8,9,14,16,20,35],
then
d=[6,98,99,102,204,300] and i'm left with
a=[301,305;308,400].
So how do i know there are no more iterations to go?

채택된 답변

Thorsten
Thorsten 2014년 11월 19일
Store the b, c, d arrays as cell elements in cell b. Then insert the i'th row of a into anew if its not element of any list in b.
anew = [];
for i = 2:size(a, 1)
bi = 1;
while bi <= numel(b) && isempty(intersect(a(i,:), b{bi}))
bi = bi + 1;
end
if bi > numel(b) % a(i,:) not member of any b{bi}
anew(end+1,:) = a(i,:);
end
end
disp('anew')
disp(anew)

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by