作者jatj ()
看板MATLAB
标题Re: [讨论] 如何在N列2行的矩阵中的"中间列"加一列?
时间Sun Feb 9 13:28:23 2014
Siz = size(A);
AA = nan(Siz(1)+1, Siz(2));
AA(1:m-1, :)= A(1:m-1, :);
AA(m, :) = [mx, my];
AA(m+1:end, :) = A(m:end, :);
A = AA;
※ 引述《Willful1 (自强不息!!)》之铭言:
: 延伸原po的问题
: 原本是想加入一列,使其成为第3列,使得A矩阵由三列变为四列
: 若改为想加入一列(mx,my),使其成为第m列,m = 1~4 任意一数字、(mx,my)也是变数
: 请问该如何制作这样的变数组合呢?
: 谢谢大家
: ※ 引述《candy88257 (阿泰斯)》之铭言:
: : 如:
: : A=[1,2;3,4;7,8];
: : 想在中间加一列变成:
: : A=[1,2;3,4;5,6;7,8];
: : 请问这样要怎麽做?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 24.21.33.212
1F:推 Willful1:感谢回覆,但AA显示的结果都是NaN;请问可以做成函数 02/09 14:34
2F:→ Willful1:形式,像是AA=B(m,mx,my)这样吗?? 谢谢 02/09 14:35
3F:推 Willful1:不好意思,後来修改一下後就可以了,感谢j大提点 02/09 14:42
4F:→ Willful1:function siz(m,mx,my) 02/09 14:42
5F:→ Willful1:A=[1,2;3,4;7,8]; %此行一定要在此输入 02/09 14:43
6F:→ Willful1:Siz = size(A); 02/09 14:43
7F:→ Willful1:AA = nan(Siz(1)+1, Siz(2)); 02/09 14:44
8F:→ Willful1:AA(1:m-1, :)= A(1:m-1, :); 02/09 14:44
9F:→ Willful1:AA(m, :) = [mx, my];AA(m+1:end, :) = A(m:end, :) 02/09 14:45
10F:→ Willful1:end 谢谢j大帮忙 02/09 14:46
11F:→ jatj:no problem 02/09 15:09
12F:推 profyang:这种我都习惯直接B=[A(1:m-1,:);[mx,my];A(m:end,:)] 耶 02/09 16:53
13F:→ profyang:请问这样是会在矩阵比较大的时候比j大你这样先宣告它的 02/09 16:54
14F:→ profyang:size还慢吗?@@ 02/09 16:54
15F:推 profyang:另外W大你想写成函数应该是要把A当input然後AA当output吧 02/09 17:01
16F:→ profyang:那第一行应该改成function [AA]=siz(A,m,mx,my)这样吧 02/09 17:02
17F:→ profyang:然後A则是要在function外面去定义 02/09 17:02
18F:推 Willful1:这也是奇怪之处,A在函数外做好定义後,函数却读不到A 02/09 17:40
19F:推 profyang:因为你没把A放进input里面阿@@ 要像我上面那样 02/09 18:24
20F:推 Willful1:XDD" 对耶,不好意思没注意到... 感谢p大唷 :) 02/09 18:57
21F:→ jatj:p这样应该也一样的速度 只是又更简单了点 02/10 09:34
22F:推 profyang:了解 因为我是好像有看过有的case先宣告他size会比较好 02/10 12:32
23F:→ jatj:如果矩阵大我会先宣告空间 不过一行的话应该就不用(不确定) 02/10 12:53