主题:[讨论]matlab循环语句
luoluohou
[专家分:0] 发布于 2007-06-13 10:06:00
请问大家,如何用matlab中的循环语句获取一个维数很大的矩阵的每一行的行向量? 例如,一个900*20的矩阵,如何取得它的每一行的行向量?
回复列表 (共6个回复)
沙发
zhouxuewu11 [专家分:430] 发布于 2007-06-13 13:08:00
写一个循环可以实现;例如:a为1000*1998矩阵,得到第678行
b=a(678,:);b为678行向量,所以全部行向量可以
for i=1:1000
b(i)=(i,:);
end
即得到所有行向量
板凳
zhouxuewu11 [专家分:430] 发布于 2007-06-13 13:10:00
在不知道行列数时,可以先测试行列的长度。这个由你自己完成,学习愉快!
3 楼
luoluohou [专家分:0] 发布于 2007-06-14 13:25:00
谢谢1楼 2楼帮助,但是1楼的方法我试过,好象不行啊,它会提示 说a和b维数不同。我是这样做的:
a是一个900*17的矩阵,for i=1:900
b1=a(1,:)
i=i+1
bi=a(i,:)
end
这样运行结果形式是:
i=2 bi=a(2,:)
i=3 bi=a(3,:)
.......................
........................
这样一直到 i=900 bi=a(900,).
我怎样调用每一个行向量啊?
4 楼
asioc [专家分:10] 发布于 2007-06-14 16:28:00
你是不是要先提取一个举证的行向量,然后对行向量作作处理,得出一个数阿。
如果是这样的话,你没有必要把每个行向量都取出来存储下来,你可以写一个处理函数,在循环内部,每提取一个行向量,处理一次,存储处理结果,就行了
5 楼
最后防线 [专家分:0] 发布于 2007-06-14 20:04:00
a=[1 2 3;4 5 6;7 8 9;7 4 1;8 5 2;9 6 3];
for i=1:3
fprintf('a(3,%d)=',i)
disp(a(3,i));
end
>> a(3,1)= 7
a(3,2)= 8
a(3,3)= 9
应该这样可以,希望对你有一丝的帮助!
6 楼
luoluohou [专家分:0] 发布于 2007-06-21 12:55:00
谢谢以上楼主的帮助,小女子感激不尽
我来回复