如何利用循环得到矩阵中的一列值?

来源:百度知道 编辑:UC知道 时间:2024/06/26 05:42:11
我现在建立了一个500*500的矩阵,我希望他可以循环移动,每当他的列向右移动一次时,我想判断他的最后一列上的数,有几个等于1.然后统计这个数。我自己再循环方面写了两步:
>> clc;
clear;
n1=500;
n2=500;
n=200;
for i=1:n
h=round((n1-1)*rand(1)+1);
l=round((n2-1)*rand(1)+1);
b(1,i)=h;b(2,i)=l;
end
a=zeros(n1,n2);
a(n1*(b(2,:)-1)+b(1,:))=1;
reg=zeros(1,500)
n=0;
for t=0:500
circshift(a,[1 0]) ;
for i=1:500
if a(i,500)=1
n=n+1;
end
end
reg(1,t)=n;
end
t=(1,[1,500]);
plot(t,reg);

但执行时一直说 if a(i,500)=1
这句里面的a(i,500)是无效语句,请高手帮我看看错在哪里?
我忘记说了,这是在MATLAB下的语句 ,a(i,500)==1 改正了之后,还是统计出来都是0.因为我是设了有200个1在里面的,不可能边界一直都统计为0~麻烦大侠帮我解惑,如果程序不对,就整体改了也行。

你的意思就是说要得到每列里面1的个数咯,我稍微看了下,觉得你写的太类似于C里面的语句了,其实MATLAB比这个简单(我的毕设,这次就是在折腾这东西)

%假设A是500*500零矩阵
A=zeros(500);
for i=1:500
B=A(1:500,i);
x(i)=length(find(B==1));
end
x

你看看这个帖子
http://www.chinavib.com/forum/thread-65320-1-1.html

a(i,500)==1 %判断语句: ==,<=,>=,<,>,~=