作者kevio (成仔)
看板MATLAB
标题Re: [讨论] 二维转一维
时间Sun Mar 22 23:05:05 2015
reshape -->可将二维矩阵变一维
numel -->可订出矩阵size
A=[0 1 3 4;
5 6 1 1;
7 0 1 8;
9 0 0 0;]
B= reshape (A, 1, numel(A)) --> 得到 B=[0 5 7 9 1 6 0 0 3 1 1 0 4 1 8 0]
先转置在求B比较符合你要的排列
B= reshape (A',1, numel(A)) --> 得到 B=[0 1 3 4 5 6 1 1 7 0 1 8 9 0 0 0]
最後用推文的
B= B(B/2>1) -->为你所求
结论 code:
A=[0 1 3 4;
5 6 1 1;
7 0 1 8;
9 0 0 0;]
B= reshape (A',1, numel(A))
B= B(B/2>1)
※ 引述《Lionel (跟快乐交往)》之铭言:
: 问题:
: A=[0 1 3 4;
: 5 6 1 1;
: 7 0 1 8;
: 9 0 0 0;]
: 如果A矩阵(4*4)的一个元素/2後大於1
: 想要得到结果是B(1*N)矩阵 %N的大小由A决定
: B=[3 4 5 6 7 8 9]
: 该如何写code
: my code
: A=[0 1 3 4;
: 5 6 1 1;
: 7 0 1 8;
: 9 0 0 0;]
: for i=1:3
: for j=1:4
: if a(i,j)/2>1
: end
: end
: end
: if里面要放什麽我就想不出来了....
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.255.36.11
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1427036707.A.4EC.html
1F:推 profyang: 不用reshape 因为A(A/2>1)这种东西它index就自动变成1D 03/22 23:54
2F:推 Lionel: 又多学到一招了 matlab函数根本超多 03/23 00:34
3F:→ kevio: 真的耶~~ 先转置 再下指令就ok了 03/23 11:08
4F:→ profyang: 因为matlab的array本来就有把它编成只有一个index的排序 03/23 11:50
5F:→ profyang: 方式 并非二维阵列一定要两个index去叫他 03/23 11:50