在Matlab2上验证矩阵值 我正在使用MATLAB。我有一个关于如何验证矩阵值是否重复的问题,如下所示:

在Matlab2上验证矩阵值 我正在使用MATLAB。我有一个关于如何验证矩阵值是否重复的问题,如下所示:,matlab,matrix,Matlab,Matrix,A=[2 3 2 3 2 3] 答案为AUX=1 如果矩阵A对后面的所有列至少重复前两个值,我希望AUX=1。但如果不是,则只有AUX=0 或 A=[2 3 2 3 2] 答案为AUX=1 如果矩阵像以前一样重复,我想要一个AUX=1。但如果不是,则只有AUX=0 矩阵A也可以在数字后加零。(例如,A=[1 2 1 0 0],A=[2 3 2 3 2 0 0 0]。) 我认为您正在寻找这一点,寻找是否在两个值的每个非重叠窗口中使用相同的两个数字: % Cutting off the tail

A=[2 3 2 3 2 3] 答案为AUX=1

如果矩阵A对后面的所有列至少重复前两个值,我希望AUX=1。但如果不是,则只有AUX=0

或 A=[2 3 2 3 2] 答案为AUX=1

如果矩阵像以前一样重复,我想要一个AUX=1。但如果不是,则只有AUX=0

  • 矩阵A也可以在数字后加零。(例如,A=[1 2 1 0 0],A=[2 3 2 3 2 0 0 0]。)

我认为您正在寻找这一点,寻找是否在两个值的每个非重叠窗口中使用相同的两个数字:

% Cutting off the tail
x = [1 2 2 1 1 2 1 2 0 0];
x = x(1:find(x,1,'last'));
x = x(1:2*fix(numel(x)/2));

% Checking for allowed values (the first 2 values, each one once)
M=sort(reshape(x,2,[]));
AUX = size(unique(M','rows'),1)==1
请注意,这会减少尾随零的数量,因此如果剩余元素的数量不总是奇数,则可能需要额外的步骤,但这应该很容易。

%A
A=[123445;123456;674133]
%创建一个列向量
A_col=A(:)
%使用最大(A列)箱计算A的直方图
n=历史(A_col,max(A_col))

AUX=sum(n>1)>0

是否要从比较中排除零?也就是说,应该
A=[1 2 1 2 1 0 0 0]
给出
aux=1
?我不想要@LuisMendo。这是第二个问题吗@Dan@OscarSantacruz然后用我回答的第一部分,但有什么区别?问题的新部分是什么??