行列A(n行3列)と行列B(m行3列)があります(n>m)。行列Bは行列Aに属する行列です。
ここで、行列Aから行列Bを除いた行列Cを求めたいのですが、どのようなコードでしょうか。
以下イメージです。
行列Aは点群データとして扱っており、処理によって検出した行列Bと検出されなかった
行列Cを別のデータとして処理したいので質問させて頂きます。
どうぞ宜しくお願い致します。

 채택된 답변

michio
michio 2017년 1월 15일

0 개 추천

ismember関数 が使えるかなと。
以下のサンプルコードを実行してみてください。
%サンプルデータ作成
% 点群 B,C
B = rand(5,3);
C = rand(5,3);
% 点群 A
A = [C; B];
% 点群 A の中から 点群 B を検出
index = ismember(A,B,'rows');
% B 以外、すなわち C を抽出
CfromA = A(~index,:);
% 確認
C
CfromA

댓글 수: 2

Ichiro Suzuki
Ichiro Suzuki 2017년 1월 16일
michio 様
ismember関数を知らずに無駄な繰り返し関数を使っていました。。。
C行列を抽出することができました。ありがとうございました。
michio
michio 2017년 1월 16일
もし多少の誤差内のデータを抽出される場合には、 ismembertol 関数も便利ですよ。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

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

제품

질문:

2017년 1월 14일

댓글:

2017년 1월 16일

Community Treasure Hunt

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

Start Hunting!

Translated by