Извлечение значений в одной матрице в соответствии с условиями во второй матрице

#matlab #matrix

#matlab #матрица

Вопрос:

У меня следующая проблема: у меня есть, скажем, 100 трехмерных точек и корреляционная матрица A с корреляцией всех точек друг с другом, следовательно, A имеет размеры 100 x 100.

Для всех моих точек у меня есть другая матрица B с координатами каждой точки, такая, что B является матрицей 3 x 100.

Теперь я хочу, чтобы было сделано следующее: из моей корреляционной матрицы A я хочу извлечь только корреляцию точек, где координата x точки равна 0 или больше нуля, так что я получаю новую корреляционную матрицу, а также для матрицы B я хочу только сохраните баллы, которые полностью соответствуют этому критерию. Значения x сохраняются в первой строке матрицы B для каждой из 100 точек.

Как я мог это сделать?

Ответ №1:

попробуй это

 B_out = reshape(B(repmat(B(1,:)>0,3,1)),3,[]);
[row col]  = find(B(1,:) > 0);
out_A = A(col,col);