登录论坛

查看完整版本 : [求助]请教一个循环问题


Juicy
2008-10-23, 17:41
X_1 = data(find(Label(:)==1),1:s);
X_2 = data(find(Label(:)==2),1:s);
X_3 = data(find(Label(:)==3),1:s);
X_4 = data(find(Label(:)==4),1:s);
X_5 = data(find(Label(:)==5),1:s);

请教一下:

如果想表示成X(i),i=1,2,3,4,5,怎么用循环来实现呢?

先给X设定一个存储空间,X=zeros()

多谢!:tongue:

补充说明一下数据的大小:
data 745×328
Label 745×1
s 328

mathjiang
2008-10-23, 19:19
要用双下标,你把数据传上来,操作操作。

Juicy
2008-10-24, 23:25
找到了一种表示,但是数据都会显示在屏幕上。有高手知道怎么让数据不显示么?Thanks a lot!
X = cell(N,1);
for i = 1:N
X_i = data(find(Label(:)==i),1:s);
eval(['X',num2str(i),' = X_i'])
X{i} = eval(['X' num2str(i)])
end

meteora1005
2008-10-25, 00:30

eval(['X',num2str(i),' = X_i'])
X{i} = eval(['X' num2str(i)])
你这两句都没加分号,肯定要显示在屏幕么:sweat:

Juicy
2008-10-25, 16:18

eval(['X',num2str(i),' = X_i'])
X{i} = eval(['X' num2str(i)])
你这两句都没加分号,肯定要显示在屏幕么:sweat:

呵呵,其实开始我是加了分号的,后来发现数据仍然会显示,索性就去掉了。

又加分号试了次,还是不行。。。:sweat:

Juicy
2008-10-28, 18:02
没人理啊,好可怜~~

xiezhh
2008-10-29, 17:18
我来解决,eval命令里面加个分号即可

X = cell(N,1);
for i = 1:N
X_i = data(find(Label(:)==i),1:s);
eval(['X',num2str(i),' = X_i ;']);
X{i} = eval(['X' num2str(i)]);
end

Juicy
2008-11-04, 03:51
我来解决,eval命令里面加个分号即可

X = cell(N,1);
for i = 1:N
X_i = data(find(Label(:)==i),1:s);
eval(['X',num2str(i),' = X_i ;']);
X{i} = eval(['X' num2str(i...

在失望之余,看到你的回复,真是感激:cry:

问题已解决,多谢!:biggrin: