24小时热门版块排行榜    

查看: 4826  |  回复: 7

guiqulai2046

新虫 (小有名气)

[求助] 如何将一个向量赋值给三维数组中的一部分 已有2人参与

假设有一个三维数组A=zeros(10,10,3),和一个向量b=[1 1 0], 现在想把A(1:2, 1:2, 赋值成b,即A(1,1,=A(1,2,=A(2,1,=A(2,2,=b。
想用快捷的方法实现上述功能,因为实际中A很大,不能一个一个的写出来。用A(1:2, 1:2, =b出错,显示维数不匹配。
请指点,谢谢大家。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baobiao007

木虫 (职业作家)

中国特色

【答案】应助回帖

感谢参与,应助指数 +1
把矩阵中的一部分数据赋给一个向量,这必须满足一个前提啊:两者的数据个数一样多
我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
2楼2014-05-17 18:26:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guiqulai2046

新虫 (小有名气)

谢谢楼上,不过我是需要把向量赋给矩阵中的一部分。
而且我发现上面提问的帖子里冒号+括号都变成笑脸了,救命。。重发一次:

假设有一个三维数组A=zeros(10,10,3),和一个向量b=[1 1 0], 现在想把A(1:2, 1:2,:) 赋值成b,即A(1,1,:)=A(1,2,:)=A(2,1,:)=A(2,2,:)=b。
想用快捷的方法实现上述功能,因为实际中A很大,不能一个一个的写出来。用A(1:2, 1:2,  =b出错,显示维数不匹配。
请指点,谢谢大家。
3楼2014-05-17 18:32:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guiqulai2046

新虫 (小有名气)

假设有一个三维数组A=zeros(10,10,3),和一个向量b=[1 1 0], 现在想把A(1:2, 1:2,:) 赋值成b,即A(1,1,:)=A(1,2,:)=A(2,1,:)=A(2,2,:)=b。
想用快捷的方法实现上述功能,因为实际中A很大,不能一个一个的写出来。用A(1:2, 1:2, :)=b出错,显示维数不匹配。
请指点,谢谢大家。
4楼2014-05-17 18:33:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dnp

荣誉版主 (知名作家)

小木虫浪子

优秀版主

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
guiqulai2046: 金币+5, 有帮助 2014-05-18 09:32:50
用个循环吧
for ii = 1:2
for jj = 1:2
A(ii,jj, = b;
end
end
What would Jesus do?
5楼2014-05-17 20:08:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dnp

荣誉版主 (知名作家)

小木虫浪子

优秀版主

引用回帖:
5楼: Originally posted by dnp at 2014-05-17 20:08:15
用个循环吧
for ii = 1:2
for jj = 1:2
A(ii,jj, = b;
end
end

CODE:
for ii = 1:2
for jj = 1:2
A(ii,jj,:) = b;
end
end

What would Jesus do?
6楼2014-05-17 20:09:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guiqulai2046

新虫 (小有名气)

引用回帖:
6楼: Originally posted by dnp at 2014-05-17 20:09:15
for ii = 1:2
for jj = 1:2
A(ii,jj, = b;
end
end...

谢谢。循环的办法我也想过,不过还是觉得要是有更简洁的办法就更好了。能不能用矩阵运算的方式把向量b=[1 1 0]变成三维数组B、数组中每个B(i,j,:)都是b呢?这样就可以把B赋给A中的一部分了。请指点。多谢!
7楼2014-05-18 09:31:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dnp

荣誉版主 (知名作家)

小木虫浪子

优秀版主

引用回帖:
7楼: Originally posted by guiqulai2046 at 2014-05-18 09:31:28
谢谢。循环的办法我也想过,不过还是觉得要是有更简洁的办法就更好了。能不能用矩阵运算的方式把向量b=变成三维数组B、数组中每个B(i,j,:)都是b呢?这样就可以把B赋给A中的一部分了。请指点。多谢!...

三维矩阵的赋值是比较麻烦的,不像二维矩阵。这里可以有些参考:http://www.mathworks.com/matlabc ... /view_thread/258854;如果计算量很大,用reshape或者repmat,我觉得还不如直接用for循环,这样速度还快一些。很多时候for循环并不一定比直接的一条命令慢。
What would Jesus do?
8楼2014-05-18 14:27:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 guiqulai2046 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 2026国自然函评费到账 +16 羊腰板 2026-08-21 17/850 2026-08-23 23:02 by tianxiaochun
[教师之家] 跳槽后在研项目怎么办? +5 简单化xn 2026-08-22 10/500 2026-08-23 12:38 by 简单化xn
[基金申请] 今天放榜吗? +15 布布和一二 2026-08-19 16/800 2026-08-23 09:55 by 张春生
[基金申请] 93BebMhtakh前后11位开头都是大写 +7 且听虎啸 2026-08-17 8/400 2026-08-22 21:55 by 医学老男孩
[基金申请] 人气不行了 +8 fansofjerry 2026-08-21 8/400 2026-08-22 16:30 by zyqchem
[基金申请] 今天基金会出结果吗?20260819 +16 kkkl_v 2026-08-19 17/850 2026-08-22 16:12 by 阿布Abu
[基金申请] 时间戳今天,20号变了 +5 archvillain 2026-08-20 5/250 2026-08-22 06:12 by hui_daxiao
[基金申请] 放榜前的不淡定 40+4 snowwithsea 2026-08-19 14/700 2026-08-21 23:51 by cratir
[基金申请] 建议基金发布提前给出明确的时间点 +10 kulium 2026-08-21 13/650 2026-08-21 21:58 by alongwaytogo
[基金申请] 今日不放榜?网传国自然预计 8 月 27 日可查结果 +16 医学老男孩 2026-08-20 20/1000 2026-08-21 21:13 by Ldrop2023
[基金申请] 科研孤儿太难了 +17 我4大白菜 2026-08-20 18/900 2026-08-21 20:57 by zhangev
[基金申请] 时间戳又变了 +13 wuchongjun 2026-08-20 19/950 2026-08-21 17:21 by 紫杉醇
[基金申请] 应该是下周三26日公布了吧? +4 哈哈蛤? 2026-08-21 4/200 2026-08-21 10:58 by Vivilian
[基金申请] 今天放榜没戏了吧 +9 yuleib84 2026-08-19 11/550 2026-08-21 10:06 by gltch
[基金申请] 基金啊基金 +4 longfie172 2026-08-20 4/200 2026-08-21 08:58 by mark mao
[基金申请] 估计是周四 +3 archvillain 2026-08-18 3/150 2026-08-21 01:48 by jnhyjjm
[基金申请] 时间戳变了,能看出什么问题? +18 基诺咪客 2026-08-17 23/1150 2026-08-20 17:19 by Godzela
[基金申请] 重要消息,中午系统在维护 +11 yuleib84 2026-08-18 12/600 2026-08-20 11:09 by xskun
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
信息提示
请填处理意见