楼主: qingyi0906
5154 9

[问答] 如何在matlab中循环选取列? [推广有奖]

  • 2关注
  • 2粉丝

VIP+

FSA&CFA&ACCA

教授

36%

还不是VIP/贵宾

-

威望
0
论坛币
16074 个
通用积分
5.7457
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
1762 点
帖子
453
精华
0
在线时间
2139 小时
注册时间
2007-5-11
最后登录
2025-10-24

楼主
qingyi0906 发表于 2012-1-5 12:46:09 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
比如说  c有5列

第一次 选c(:,[2,3,4,5])
第二次选 c(:,[1,3,4,5])
第三次选c(:,[1,2,3,5]);
就是每次选取 去掉当前列的其他所有列

感谢了 急求啊


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB matla atlab Atl Lab matlab 如何

沙发
lowbrow 发表于 2012-1-5 13:06:47
for i=1:5
b=a;
b(:,i)=[]
end
不要害怕在Matlab中害怕b=a这样的赋值,Matlab会自己优化的。

藤椅
hawking139 发表于 2012-1-5 13:07:43
每次循环时先把C复制一份
for i=1:5
     tmp=c;
     tmp(:,i)=[];
end
最终的tmp就是你想要的

远见 坚忍 恪己 稳进

板凳
jiulaiyichi 发表于 2012-1-5 13:10:56
不懂你的意思,但可以设自然数列i=0,1,2……,k=mod(i,5)+1,再以k去取矩阵的各列.设定一个变量,循环一次可以覆盖掉之前的赋值.

报纸
qingyi0906 发表于 2012-1-5 13:16:08
你妈的 真实高手如云啊  才这么会

我是不是很挫啊

地板
liuxin9023 发表于 2012-1-5 15:59:50
for i = 1:5
     tmp = c(:, i);
     do something;
end

7
qingyi0906 发表于 2012-1-6 04:13:51
liuxin9023 发表于 2012-1-5 15:59
for i = 1:5
     tmp = c(:, i);
     do something;
你这个 没看我的内容吧

一般的循环选列 还是很简单的

8
liuxin9023 发表于 2012-1-6 09:35:08
for i = 1:5
     tmp = c(:, [1:i, i+1:5]);
     do something;
end

这么写只是抛砖引玉,给大家说下matlab在选取列的时候第2个参数只是一个list,把你需要的列放进去就OK了,
上面的代码选第1列时会遇到问题

9
qingyi0906 发表于 2012-1-6 10:44:52
我觉得 前面几个哥们 写的不错了 已经

10
matlab-007 发表于 2016-8-15 21:12:07
循环赋值即可
[m,n]=size(A);
A(:,1)=A(:,n);
for i=2:n
A(:,i)=A(:,i-1);
end

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 17:24