返回信息流创建4×5矩阵 提取第一行和第二行中大与0.3的元素组成的矩阵
这个题目就是这样,恩,会一个一个 不会提多行的。。。帮忙解答一下 谢谢
这是一条镜像帖。来源:北邮人论坛 / matlab / #4001同步于 2008/7/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖
【求助】关于矩阵元素提取(完全新手)
yn123
2008/7/17镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
【 在 QuestionMark 的大作中提到: 】
: 要是第一行有1个大于0.3的元素 第二行有2个大于0.3的元素
: 他们怎么“组成矩阵”?
不知道啊 题目是这样说的 是有问题啊 但是如果不考虑这个矩阵 要是直接取值 该如何呢
A = rand(4 ,5);
研究下面两个:
pos = A(1:2, :) > 0.3;
idx = find( A(1:2, :) > 0.3 );
>> A=rand(4,5)
A =
0.8147 0.6324 0.9575 0.9572 0.4218
0.9058 0.0975 0.9649 0.4854 0.9157
0.1270 0.2785 0.1576 0.8003 0.7922
0.9134 0.5469 0.9706 0.1419 0.9595
>> pos=A(1:2,:)>0.3
pos =
1 1 1 1 1
1 0 1 1 1
>> idx=find(A(1:2,:)>0.3)
idx =
1
2
3
5
6
7
8
9
10
为什么是这样的呢~~
pos=A(1:2,:)>0.3 是逻辑运算,运算结果:A的前两行中大于0.3的位置返回1,小于等于0.3的位置返回0。这个结果可以用来和A(1:2,:)做与操作。
idx=find(A(1:2,:)>0.3) 返回值是符合A(1:2,:)>0.3条件的索引值。A的前两行索引是这样排列的:
1 3 5 7 9
2 4 6 8 10 对应A矩阵看一下吧
这个结果可以直接A(idx)取出值
挺有意思的小东西,适合自己思考