matlab顺序排列清零,MATLAB 将矩阵元素清零,如何实现

2012-12-30 回答

clc

clear all

rm=10;%rm等于矩阵的行数

cm=10;%cm等于矩阵的列数

m=round(rand(rm,cm)*10)%m等于一个10x10的随机整数矩阵,每个元素在0~10之间

i1=1;%计数器1,这个用来显示一个数字在不同位置重复的次数

i2=0;%计数器2,记录重复过得数字的数量

s=[];%用来记录被重复的数字

for r_1=1:1:rm%逐行

for c_1=1:1:cm%逐列

if i1~=1%如果计数器不等于1,也就是说有两个或两个以上的数字相等

fprintf('\n %d cells are equal to %d,\n',i1,equal_number)

end

cell_1=m(r_1,c_1);%元素1数值

p_cell_1=[r_1,c_1];%元素1位置

i1=1;%重新把计数器归1

find(s==cell_1);%查看m(r_1,c_1)是否在之前出现过,如果出现过则跳过

a=size(find(s==cell_1));%查看m(r_1,c_1)是否在之前出现过,如果出现过则跳过

if a(2)==0 %查看m(r_1,c_1)是否在之前出现过,如果出现过则跳过

for r_2=1:1:rm%逐行

for c_2=1:1:cm%逐列

cell_2=m(r_2,c_2);%元素2数值

p_cell_2=[r_2,c_2];%元素2位置

if cell_1==cell_2 && (p_cell_2(1)~=p_cell_1(1)||p_cell_2(2)~=p_cell_1(2))%比较cell_1与cell_2是否相等,同时判断是否是同一元素

equal_number=m(r_2,c_2);%满足条件则这个位置的数字为被重复的数字

if i1==1

i2=i2+1;%计数器2,多了一个被重复过得数字

s(i2)=equal_number;%将这个被重复的数字计入矩阵s中

fprintf('(%d,%d)=(%d,%d)',r_1,c_1,r_2,c_2)

else

fprintf('=(%d,%d)',r_2,c_2)

end

i1=i1+1;%计数器2,这个被重复的数字多被重复了一次

end

end

end

end

end

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值