24小时热门版块排行榜    

查看: 4377  |  回复: 4

fluenter

银虫 (正式写手)

[求助] 查找矩阵中符合条件的元素,并赋值给另外一个矩阵。

[a,b]=meshgrid(1:10,-5:10)
c=a+b
d=a+b+c
查找d>10的元素,
并将相应的a,b,c复制给e,f,g。

百度上有个答案,但是我验证一下,还是不对。
http://zhidao.baidu.com/question/337920323.html
必须用线性索引,行列下标索引的话有问题。举一个你容易理解的例子x(1:3,1:3)取的是x第1到3行,第1到3列的3*3矩阵,而不是x(1,1),x(2,2),x(3,3)这三个值。因此你上面X(m,n)是一个范围内的矩阵,而不是你要的大于3小于12的X值。这时候需要用sub2din把[m,n]转成线性索引:

X=[3,2,6;3,7,2;8,9,13]
ind = find(X>3&X<12)
[m,n] = ind2sub(size(X),ind)
X(m,n)

n =

     1
     2
     2
     3


ans =

     8     9     9    13
     3     7     7     2
     8     9     9    13
     3     2     2     6

[ Last edited by fluenter on 2012-5-11 at 15:42 ]
回复此楼
每天坚持一件事情
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖置顶 ( 共有1个 )

xiegangmai

版主 (职业作家)

我没头衔

优秀版主优秀版主优秀版主

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
fluenter: 金币+5, ★★★★★最佳答案, 谢谢 2012-05-14 09:33:54
fluenter: 回帖置顶 2012-05-29 16:42:43
不是很理解你最终要得到什么, (1)e, f, g是与a, b, c相同维度的矩阵呢,(2)还是仅符合d>10条件元素组成的矩阵?

(1)给e,f,g初始化为0
CODE:
clear
[a,b] = meshgrid(1:10,-5:10);
c=a+b ;
d=a+b+c;
[ m, n ] = find( d> 10 );
e = zeros( size( a ) );
f = zeros( size( a ) );
g = zeros( size( a ) );
for i = 1 : length( m )
    e( m(i), n(i) ) = a( m(i), n(i) );
    f( m(i), n(i) ) = b( m(i), n(i) );
    g( m(i), n(i) ) = c( m(i), n(i) );
end

(2)e,f,g只能为一维数组(一行或一列)
CODE:
clear
[a,b] = meshgrid(1:10,-5:10);
c=a+b ;
d=a+b+c;
[ m, n ] = size( a );
ind = find( d > 10 );
a = reshape(a, m * n, 1 );
b = reshape(b, m * n, 1 );
c = reshape(c, m * n, 1 );
e = a( ind );
f = b( ind );
g = c( ind );

明德厚学、求是创新
4楼2012-05-14 00:03:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

fluenter

银虫 (正式写手)

求助啊!
每天坚持一件事情
2楼2012-05-13 19:35:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)

方丈大师

举例说明一下
3楼2012-05-13 22:00:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fluenter

银虫 (正式写手)

caemechanics: 金币+5, 感谢应助 2012-05-14 10:45:15
xiegangmai: 金币-5, 呵呵,caemechanics版主乌龙了。 2012-05-14 21:49:20
引用回帖:
4楼: Originally posted by xiegangmai at 2012-05-14 00:03:10:
不是很理解你最终要得到什么, (1)e, f, g是与a, b, c相同维度的矩阵呢,(2)还是仅符合d>10条件元素组成的矩阵?

(1)给e,f,g初始化为0
clear
= meshgrid(1:10,-5:10);
c=a+b ;
d=a+b+c;
= fin ...

谢谢啦!
我本想寻找符合d>10条件元素组成的矩阵。并将符合条件的d(a,b,c)>10的a,b,c赋值给另外三个矩阵,绘制三维坐标图。
我本来是想找您给出的第二种方法。
但是 第一种方法可以采用mesh绘制a,b,c的坐标图。
第二种方法不能用绘制abc的三维坐标图。
我就采用第一种方法吧。
每天坚持一件事情
5楼2012-05-14 09:33:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 fluenter 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 317一志愿华南理工电气工程求调剂 +3 Soliloquy_Q 2026-02-28 3/150 2026-02-28 21:43 by xyx2012xyx
[考研] 290求调剂 +5 材料专硕调剂; 2026-02-28 6/300 2026-02-28 21:40 by gaoxiaoniuma
[考研] 295求调剂 +5 19171856320 2026-02-28 5/250 2026-02-28 21:39 by gaoxiaoniuma
[考博] 26申博 +4 想申博! 2026-02-26 4/200 2026-02-28 21:37 by limorning
[考研] 材料学调剂 +5 提神豆沙包 2026-02-28 5/250 2026-02-28 21:34 by gaoxiaoniuma
[考研] 311求调剂 +8 南迦720 2026-02-28 8/400 2026-02-28 21:30 by gaoxiaoniuma
[考研] 材料类求调剂 +6 wana_kiko 2026-02-28 6/300 2026-02-28 21:20 by gaoxiaoniuma
[考研] 高分子化学与物理调剂 +4 好好好1233 2026-02-28 7/350 2026-02-28 20:42 by 好好好1233
[基金申请] 面上模板改不了页边距吧? +5 ieewxg 2026-02-25 5/250 2026-02-28 20:11 by iwuli
[考博] 博士推荐 +5 花儿笑? 2026-02-21 6/300 2026-02-28 18:53 by nxgogo
[教师之家] 版面费该交吗 +15 苹果在哪里 2026-02-22 18/900 2026-02-28 18:20 by mibaomingg
[考研] 化工专硕348,一志愿985求调剂 +3 弗格个 2026-02-28 5/250 2026-02-28 17:04 by sandychj
[考博] 博士自荐 +3 kkluvs 2026-02-28 3/150 2026-02-28 16:59 by StarAura
[高分子] 求环氧树脂研发1名 +3 孙xc 2026-02-25 11/550 2026-02-28 16:57 by ichall
[考研] 304求调剂 +5 曼殊2266 2026-02-28 6/300 2026-02-28 12:44 by 迷糊CCPs
[硕博家园] 博士自荐 +6 科研狗111 2026-02-26 9/450 2026-02-28 12:32 by seaskyy
[考研] 272求调剂 +3 田智友 2026-02-28 3/150 2026-02-28 12:31 by 王加浩to
[考研] 298求调剂 +4 axyz3 2026-02-28 4/200 2026-02-28 11:21 by wang_dand
[基金申请] 什么是人一生最重要的? +10 瞬息宇宙 2026-02-21 10/500 2026-02-27 08:46 by tfang
[基金申请] 面上可以超过30页吧? +12 阿拉贡aragon 2026-02-22 13/650 2026-02-26 22:09 by Hahaxia
信息提示
请填处理意见