Unable to write file ddw2_i1.mat: permission denied 出错
我的程序是这样的就是当我调用save函数保存的时候, save(file_name_w1_i,w1_i); 其中file_name_w1_i是个字符串变量。
在一个循环中,循环到2093步的时候上述问题并不出现任何错误,但是在2094步的时候就出现了如题目所示的错误:
Error using ==> save
Unable to write file ddw2_i1.mat: permission denied
对于这个问题我不太清楚,在网上搜了很久也没有看到有很好的解答
我想问问大家的看法
如果需要具体讨论的
可以加我的QQ603828965
谢谢大家了
[ 本帖最后由 eight 于 2007-10-10 22:03 编辑 ] 原帖由 zhengjun23 于 2007-10-10 21:57 发表 http://www.chinavib.com/forum/images/common/back.gif
我的程序是这样的
就是当我调用save函数保存的时候, save(file_name_w1_i,w1_i); 其中file_name_w1_i是个字符串变量。
在一个循环中,循环到2093步的时候上述问题并不出现任何错误,但是在2094步的时候就出现 ...
磁盘满了?请用具体的代码说话,仅通过上述描述无法获悉原因 程序如下:(之前误删除了这个代码帖)
for i=1:n_fluid
file_name_pair1_i=sprintf('pair1_i%d',i);%加载第i个粒子的相关坐标文件
pair1_i=file_load(file_name_pair1_i); %从以上的文件中取回坐标值,file_load为子函数
for j=1:n_fluid
r_ij=sqrt((fluid_x(i)-fluid_x(j))*(fluid_x(i)-fluid_x(j))+...
(fluid_y(i)-fluid_y(j))*(fluid_y(i)-fluid_y(j)));
hij=( h_fluid(i)+ h_fluid(j))/2;
r=r_ij/hij;
ad=7/478/pi/hij/hij;
%求梯度所需要的量
if i==j
r_x=0;
r_y=0;
r_z=0;
else
r_x=(fluid_x(i)-fluid_x(j))/r_ij;
r_y=(fluid_y(i)-fluid_y(j))/r_ij;
end
if pair1_i(j)~=0 %即该粒子在第i个粒子的领域内,那么
if 0<=r<1
w1_i(j)=ad*((3-r).^5-6*(2-r).^5+15*(1-r).^5);
dw1_x_i(j)=r_x*ad*(-5*(3-r).^4+30*(2-r).^4-75*(1-r).^4);
dw1_y_i(j)=r_y*ad*(-5*(3-r).^4+30*(2-r).^4-75*(1-r).^4);
ddw1_i(j)=0;
elseif 1<=r<2
w1_i(j)=ad*((3-r).^5-6*(2-r).^5);
dw1_x_i(j)=r_x*ad*(-5*(3-r).^4+30*(2-r).^4);
dw1_y_i(j)=r_y*ad*(-5*(3-r).^4+30*(2-r).^4);
ddw1_i(j)=0;
elseif 2<=r<3
w1_i(j)=ad*((3-r).^5);
dw1_x_i(j)=r_x*ad*(-5*(3-r).^4);
dw1_y_i(j)=r_y*ad*(-5*(3-r).^4);
ddw1_i(j)=0;
else
w1_i(j)=0;
dw1_x_i(j)=0;
dw1_y_i(j)=0;
ddw1_i(j)=0;
end
else%如果粒子不在这个领域内即 pair1_i(j)=0
w1_i(j)=0;
dw1_x_i(j)=0;
dw1_y_i(j)=0;
ddw1_i(j)=0;
end
end
%在这里存下第i个粒子光滑函数的所有变量值
file_name_w1_i=sprintf('w1_i%d',i);%利用sprintf连接字符串,文件名后面的数字为i
file_name_dw1_x_i=sprintf('dw1_x_i%d',i);
file_name_dw1_y_i=sprintf('dw1_y_i%d',i);
file_name_ddw1_i=sprintf('ddw1_i%d',i);
file_save(file_name_w1_i,w1_i);%调用下面的文件保存子函数,参数是字符串变量和要被保存的变量
file_save( file_name_dw1_x_i,dw1_x_i);
file_save( file_name_dw1_y_i,dw1_y_i);
file_save( file_name_ddw1_i,ddw1_i);
clear ddw1_i; %从内存中清除这个循环步下的产生的变量,节省内存空间
clear dw1_x_i;
clear dw1_y_i;
clear w1_i;
clearfile_name_w1_i;
clearfile_name_dw1_x_i;
clearfile_name_dw1_y_i;
clearfile_name_ddw1_i;
clearfile_name_pair1_i;
end
%文件加载模块
function get_back=file_load(filename)
load(filename);
get_back=med_variable;
%文件保存模块
function file_save(filename,variable)
med_variable=variable;
save(filename,'med_variable');
当外层循环循环到i=2094时,出现了上述错误
Unable to write file ddw2094_i1.mat: permission denied
许多可能的错误的考察过了;想请大家想想办法
[ 本帖最后由 eight 于 2007-10-11 20:06 编辑 ]
回复 #3 eight 的帖子
Unable to write file ddw2094_i1.mat: permission denied其中的文件名 ddw2094_i1.mat 是哪儿来的?
程序中好像并没有产生这样一个文件名。 原帖由 xray 于 2007-10-11 22:25 发表 http://www.chinavib.com/forum/images/common/back.gif
Unable to write file ddw2094_i1.mat: permission denied
其中的文件名 ddw2094_i1.mat 是哪儿来的?
程序中好像并没有产生这样一个文件名。
嗯,这是楼主贴的程序,只不过之前我误删除了,所以我把它重新贴上来而已。其实这类涉及外部文件数据的问题在论坛上面很难处理,除非楼主把外部文件上传上来,否则外人没法运行程序,也就无法帮忙。但是会遇到文件太大无法上传成功的问题,所以,我觉得还是只能靠楼主自己一步一步调式才能解决
页:
[1]