声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2584|回复: 4

[编程技巧] Unable to write file ddw2_i1.mat: permission denied 出错

[复制链接]
发表于 2007-10-10 21:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我的程序是这样的
就是当我调用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 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-10-10 22:02 | 显示全部楼层
原帖由 zhengjun23 于 2007-10-10 21:57 发表
我的程序是这样的
就是当我调用save函数保存的时候, save(file_name_w1_i,w1_i); 其中file_name_w1_i是个字符串变量。
在一个循环中,循环到2093步的时候上述问题并不出现任何错误,但是在2094步的时候就出现 ...


磁盘满了?请用具体的代码说话,仅通过上述描述无法获悉原因
发表于 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;
          clear  file_name_w1_i;
          clear  file_name_dw1_x_i;
          clear  file_name_dw1_y_i;
          clear  file_name_ddw1_i;         
          clear  file_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 编辑 ]
发表于 2007-10-11 22:25 | 显示全部楼层

回复 #3 eight 的帖子

Unable to write file ddw2094_i1.mat: permission denied

其中的文件名 ddw2094_i1.mat 是哪儿来的?
程序中好像并没有产生这样一个文件名。
发表于 2007-10-11 22:35 | 显示全部楼层
原帖由 xray 于 2007-10-11 22:25 发表
Unable to write file ddw2094_i1.mat: permission denied

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


嗯,这是楼主贴的程序,只不过之前我误删除了,所以我把它重新贴上来而已。其实这类涉及外部文件数据的问题在论坛上面很难处理,除非楼主把外部文件上传上来,否则外人没法运行程序,也就无法帮忙。但是会遇到文件太大无法上传成功的问题,所以,我觉得还是只能靠楼主自己一步一步调式才能解决
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-18 16:31 , Processed in 0.082706 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表