zhengjun23 发表于 2007-10-10 21:57

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 编辑 ]

eight 发表于 2007-10-10 22:02

原帖由 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步的时候就出现 ...

磁盘满了?请用具体的代码说话,仅通过上述描述无法获悉原因

eight 发表于 2007-10-11 20:04

程序如下:(之前误删除了这个代码帖)

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 编辑 ]

xray 发表于 2007-10-11 22:25

回复 #3 eight 的帖子

Unable to write file ddw2094_i1.mat: permission denied

其中的文件名 ddw2094_i1.mat 是哪儿来的?
程序中好像并没有产生这样一个文件名。

eight 发表于 2007-10-11 22:35

原帖由 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]
查看完整版本: Unable to write file ddw2_i1.mat: permission denied 出错