n****r 发帖数: 5801 | 1 就是觉得很奇怪,图方便在这儿问啦
具体是这样的,某个路径下的数据M1-M15共15个数据,我想用程序自动处理数据所以涉
及到读数据和存数据的问题。
读数据第一步我用了这样的方式:
sub = dir('M*')
这样size 为15, sub(1).name == M1
为的是不想把别的无关数据读进。
但是程序对一个数据处理完之后,sub的size 自动变化为 17了,
sub(2).name == ..
sub(3).name == M1
我想应该是 sub = dir('M*') 自动变回 sub = dir(pwd)了
我想在运行完 sub = dir('M*') 之后,存下sub: save sub sub,然后 clear, 重新
load sub,这样sub 会保持 size 为15,sub(1).name == M1。
可是即使这样,程序对一个数据处理完之后,同样的事又发生了!sub的size 又自动变
化为 17,sub(2).name == ..
很想不通为什么会这样?经过 save,clear, load了不是把变量固定了么?为什么还会
自动变化呢? |
S*********g 发帖数: 5298 | 2 你自己有code把sub给改变了
【在 n****r 的大作中提到】 : 就是觉得很奇怪,图方便在这儿问啦 : 具体是这样的,某个路径下的数据M1-M15共15个数据,我想用程序自动处理数据所以涉 : 及到读数据和存数据的问题。 : 读数据第一步我用了这样的方式: : sub = dir('M*') : 这样size 为15, sub(1).name == M1 : 为的是不想把别的无关数据读进。 : 但是程序对一个数据处理完之后,sub的size 自动变化为 17了, : sub(2).name == .. : sub(3).name == M1
|
n****r 发帖数: 5801 | 3
在哪里改变了的呢?我怎么也看不出来。。。
这是我的code:
sub = dir('M*')
save sub sub
clear
load sub
for ii= 1:size(sub,1)
cfg = [];
cd(sub(ii).name)
[run data processing here]
cd ..
end
【在 S*********g 的大作中提到】 : 你自己有code把sub给改变了
|
l********a 发帖数: 1154 | 4 干脆自己构造文件名算了
for i = 1:15
fname = strcat('M',num2str(i));
% read file content here
% ...
end |
n****r 发帖数: 5801 | 5 赫赫,我是为了方便叙述,把问题简化了。实际的文件名没这么规则呀
手动就是麻烦点,倒不是问题。就是很奇怪为什么sub自己会变化
【在 l********a 的大作中提到】 : 干脆自己构造文件名算了 : for i = 1:15 : fname = strcat('M',num2str(i)); : % read file content here : % ... : end
|
s*w 发帖数: 729 | 6 土了吧, dir 返回的文件包括 . and ..
你还挨个进去, 再用 cd ..?
【在 n****r 的大作中提到】 : 就是觉得很奇怪,图方便在这儿问啦 : 具体是这样的,某个路径下的数据M1-M15共15个数据,我想用程序自动处理数据所以涉 : 及到读数据和存数据的问题。 : 读数据第一步我用了这样的方式: : sub = dir('M*') : 这样size 为15, sub(1).name == M1 : 为的是不想把别的无关数据读进。 : 但是程序对一个数据处理完之后,sub的size 自动变化为 17了, : sub(2).name == .. : sub(3).name == M1
|
n****r 发帖数: 5801 | 7 I know if just dir in my case, it would be . .. M1-M15, that is, the size
is 17
However, if dir M*, it's M1-M15, the size is 15
the data in fact is under M1-M15, for example: M1/data, M2/data
【在 s*w 的大作中提到】 : 土了吧, dir 返回的文件包括 . and .. : 你还挨个进去, 再用 cd ..?
|
t****t 发帖数: 6806 | 8 you will have to show the whole code...
【在 n****r 的大作中提到】 : I know if just dir in my case, it would be . .. M1-M15, that is, the size : is 17 : However, if dir M*, it's M1-M15, the size is 15 : the data in fact is under M1-M15, for example: M1/data, M2/data
|
n****r 发帖数: 5801 | 9
In fact the code in the loop just data processing...
the whole codes is below:
sub = dir('M*')
save sub sub
clear
load sub
for ii= 1:size(sub,1)
cfg = [];
cd(sub(ii).name)
cfg.data = 'data';
cfg.trialdef.triallength = 2;
cfg = ft_definetrial(cfg);
predelta = ft_preprocessing(cfg);
save predelta predelta
cd ..
end
【在 t****t 的大作中提到】 : you will have to show the whole code...
|
t****t 发帖数: 6806 | 10 if this is really your code, it shouldn't happen, unless:
your "sub" is global and something in the functions changed it.
【在 n****r 的大作中提到】 : : In fact the code in the loop just data processing... : the whole codes is below: : sub = dir('M*') : save sub sub : clear : load sub : for ii= 1:size(sub,1) : cfg = []; : cd(sub(ii).name)
|