出现"???Error using ==>fread Invalid file identifier -1"错误通常表示您的程序无法正确识别或打开指定的文件。这个问题可能有多种原因,例如文件不存在、文件权限不足或程序没有正确指定文件路径等。
以下是几种可能的解决方法:
确认文件是否存在:检查程序中指定的文件路径是否正确,确保该文件存在于指定路径下。如果文件不存在,请检查文件名的拼写是否正确,或者尝试在Matlab的当前工作目录中查找文件。
确认文件是否被其他程序占用:如果您正在尝试读取或写入一个已经被其他程序占用的文件,就会出现类似的错误。请确保该文件未被其他程序占用,或者关闭占用该文件的程序。
检查程序中的代码:请检查程序中使用fopen()函数打开文件的代码是否正确,确保程序使用正确的权限打开文件。如果文件是只读的,那么您需要以只读模式打开文件,而不是以写入模式打开文件。另外,请注意在使用fread()函数之前,必须先打开一个文件。
尝试使用其他函数:如果以上方法都无法解决问题,可以尝试使用其他类似的文件 *** 作函数来读取文件,例如load()、importdata()、textread()等。
如果您仍然无法解决这个问题,请提供更多详细的信息,例如程序的代码片段和具体的错误信息,这样我们可以更好地帮助您解决问题。
说明cv等于0,或者小于0;你可以把cv=svmtrain(train_data_labels,train_data,cmd)里用到的数组贴出来,或者你自己找找问题,cv的赋值就是这句话,问题就出在这里。
% lx=17ly=11 %定义矩阵维数lx=20ly=11 %修改
% v1=zeros(ly,lx) %建立一个矩阵
v1=ones(ly,lx)*80 %修改
for j=2:lx-1
v1(ly,j)=100
end %设置边界条件
v2=v1
maxt=1
t=0
k=0
while(maxt>1e-6) %精度要求,达到精度要求跳出循环
k=k+1
maxt=0
for i=2:ly-1
for j=2:lx-1
v2(i,j)=(v1(i,j+1)+v1(i+1,j)+v2(i-1,j)+v2(i,j-1))/4
%v2(i,j)=(v1(i,j+1)+v1(i+1,j)+v1(i-1,j)+v1(i,j-1))/4 %进行迭代计算
t=abs(v2(i,j)-v1(i,j))
if(t>maxt)
maxt=t
end
end
end
v1=v2
end %输出迭代次数 k=419
subplot(1,2,1),mesh(v2)
% axis([0,17,0,11,0,100])
axis([0,20,0,11,80,100])%修改
subplot(1,2,2),contour(v2,32)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)