Matlab 版 (精华区)
发信人: ramjet (史努比狗), 信区: Matlab
标 题: [合集]如何删去矩阵的一列或一行
发信站: 哈工大紫丁香 (2001年12月10日12:57:08 星期一), 站内信件
────────────────────────────────────────
zjliu (fly) 于 2001年12月09日13:00:55 星期天 说道:
为了降低维数,
可指定的删去某列或某行么?
────────────────────────────────────────
lzmdcn (reimyk) 于 2001年12月09日13:14:06 星期天 说道:
取你所需要的行或列组成一个新矩阵。
────────────────────────────────────────
zjliu (fly) 于 2001年12月09日15:59:57 星期天 说道:
没有一个命令么?
────────────────────────────────────────
Rorene (豆豆) 于 2001年12月09日16:48:06 星期天 说道:
这可以很方便的用:来解决,没有必要用一个函数,还麻烦。
────────────────────────────────────────
zjliu (fly) 于 2001年12月09日18:39:32 星期天 说道:
我是说,比如 x=[1,2,3,4];
用命令删去任意一个分量,得到y=[1,2,4];
或者y=[1,3,4];
────────────────────────────────────────
hlx (人品太次郎) 于 2001年12月09日18:47:42 星期天 说道:
y = x(:, [1:n m:k])
那么 y 矩阵是这么产生的:
取 x 矩阵中的第1列至第 n 列,以及第m列至第k列的元素,保存在
矩阵 y 中。
如果你想按行取,也可以,类似的写法是:
y = x([1:n m:k], :)
────────────────────────────────────────
zjliu (fly) 于 2001年12月09日18:57:56 星期天 说道:
在一个循环中我要分别去掉每一个元素(得到少一个的长度的向量),
这样不适于编成循环程序。
────────────────────────────────────────
hlx (人品太次郎) 于 2001年12月09日19:00:16 星期天 说道:
那你就自己做一个 function 吧!例如
function a = ****(b,c)
b 是原始矩阵, c 是需要删除的列号。这样可以吗?
────────────────────────────────────────
UFO (茫茫宇宙·任我独行) 于 2001年12月09日21:14:28 星期天 说道:
x(3) = [];
x(2) = [];
────────────────────────────────────────
UFO (茫茫宇宙·任我独行) 于 2001年12月09日21:17:42 星期天 说道:
假如A为你的矩阵,
你要去掉第i行,
用 A(i, :) = [];
要去掉第j列,
用A(:, j) = [];
────────────────────────────────────────
zjliu (fly) 于 2001年12月09日21:53:46 星期天 说道:
多谢,这招挺好!
────────────────────────────────────────
Rorene (豆豆) 于 2001年12月09日22:36:54 星期天 说道:
So cool!
────────────────────────────────────────
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.447毫秒