判断一列数里相同的数据下标matlab,MATLAB小函数:找出矩阵中某一列(行)元素全相等的列(行)所在下标及对应元素值...

MATLAB小函数:找出矩阵中某一列(行)元素全相等的列(行)所在下标及对应元素值

给定一个矩阵,一列一列找,如果某一列中全部元素都是相同的值,则返回该列的id号。例如:aa矩阵中第2列元素值全是2.3,第5列元素值全是7,则返回列下标值2, 5与相应的元素值2.3, 7。

aa =

5.0000 2.3000 4.0000 8.0000 7.0000

6.0000 2.3000 4.0000 6.0000 7.0000

8.0000 2.3000 1.0000 4.0000 7.0000

8.0000 2.3000 6.0000 4.0000 7.0000

1.0000 2.3000 5.0000 9.0000 7.0000

0 2.3000 1.0000 5.0000 7.0000

3.5000 2.3000 6.4000 8.6000 7.0000

output =

2.0000 2.3000

5.0000 7.0000

1. MATLAB程序

function output=Column_consistent(data)

% MATLAB 找出矩阵中某一列元素全相等的列所在的下标及对应的元素值

% Input: 数据集

% Output:列下标号 元素值

[~, dim]=size(data);

index=[];

value_col=[];

for i=1:dim

result_frequency=tabulate(data(:, i));

value=result_frequency(result_frequency(:, 3)==100);

if ~isempty(value)

index=[index; i];

value_col=[value_col; value];

end

end

output=[index value_col];

2. 结果

>> aa=[5 2.3 4 8 7; 6 2.3 4 6 7; 8 2.3 1 4 7; 8 2.3 6 4 7; 1 2.3 5 9 7;0 2.3 1 5 7; 3.5 2.3 6.4 8.6 7]

aa =

5.0000 2.3000 4.0000 8.0000 7.0000

6.0000 2.3000 4.0000 6.0000 7.0000

8.0000 2.3000 1.0000 4.0000 7.0000

8.0000 2.3000 6.0000 4.0000 7.0000

1.0000 2.3000 5.0000 9.0000 7.0000

0 2.3000 1.0000 5.0000 7.0000

3.5000 2.3000 6.4000 8.6000 7.0000

>> output=Column_consistent(aa)

output =

2.0000 2.3000

5.0000 7.0000

注意:如果是找出矩阵中某一行元素全相等的行所在下标及对应元素值,只需把数据转置一下就可以,例如,bb数据集中第1行元素全为1,第4行元素全为0,则返回行下标1, 4和相应的元素值1, 0。

>> bb=[1 1 1 1; 2 5 4 7; 3 5 4 8; 0 0 0 0; 6 8 4 5]

bb =

1 1 1 1

2 5 4 7

3 5 4 8

0 0 0 0

6 8 4 5

>> output=Column_consistent(bb")

output =

1 1

4 0

2020-06-04

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值