24小时热门版块排行榜    

查看: 1004  |  回复: 14

匿名

本帖仅楼主可见
11楼2016-01-08 12:45:11
已阅   申请程序强帖   回复此楼   编辑   查看我的主页

米米米BO

金虫 (初入文坛)

【答案】应助回帖

引用回帖:
7楼: Originally posted by 渭七 at 2016-01-08 08:43:55
我用的matlab 但只学了一些基本的 不太会 你能教我一下吗...

假设你的两个矩阵a,b的大小为(m,n),可以这么写:
c=zeros(2*m,n);
c(1:2:end,1:end)=a;
c(2:2:end,1:end)=b;
这样就可以了,也不用循环了。
为了避免出现表情,这里采用1:end的表示,也可以直接用:。
1:2:end表示从1到end步长为2的数组,即奇数行,2:2:end则表示偶数行,matlab里对数组的表示很方便,尽量使用这种简化表达。
注:matlab编程尽量避开循环,它对数组的处理很灵活,用内置的简洁表达可以提高运行速度,尤其是在做大型计算的时候。祝你学习开心
12楼2016-01-08 13:24:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

redipus

铁虫 (正式写手)

引用回帖:
4楼: Originally posted by 渭七 at 2016-01-07 23:17:20
是交叉的 不是直接合并
比如
a的第1行
b的第1行
a的第2行
b的第2行
...

代码如下
%matlab code
% provide that a and b have same rows
c=[a;b];
c(1:2:end,=a;
c(2:2:end,=b;
%now, c contains the content you needed

发自小木虫Android客户端
13楼2016-01-08 14:29:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

redipus

铁虫 (正式写手)

14楼2016-01-08 14:30:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

redipus

铁虫 (正式写手)

引用回帖:
12楼: Originally posted by 米米米BO at 2016-01-08 13:24:51
假设你的两个矩阵a,b的大小为(m,n),可以这么写:
c=zeros(2*m,n);
c(1:2:end,1:end)=a;
c(2:2:end,1:end)=b;
这样就可以了,也不用循环了。
为了避免出现表情,这里采用1:end的表示,也可以直接用:。
1: ...

很详细,前面回复问题时没看到,所以回复有点重复了

发自小木虫Android客户端
15楼2016-01-08 14:34:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 渭七 的主题更新
信息提示
请填处理意见