Matlab无法从文件中读取指定数量的元素.我有一个简单的程序,需要读取两个文件,对数据执行线性操作,并将组合结果写入第三个文件.
我的问题是:1)为什么Matlab无法读取指定数量的元素,2)是否有解决方法?你的任何想法都会有所帮助.
输入文件的一些细节:
有关程序的详细信息(2-4以feof检查两个文件为条件:
N从每个输入文件中读取浮点数(N*4个字节)当然,这一切都非常简单,在过去的大多数情况下,这都运作良好.不幸的是,在循环中的某个时刻,MATLAB没有N从其中一个文件中获取所有浮点数,并在步骤3中给出了矩阵维度错误.
代码SNIP:
N = 2048;
fidin1 = fopen('file1.dat','r','l');
fidin2 = fopen('file2.dat','r','l');
fidout = fopen('outfile.dat','w','l');
%# I could do some assertions on the file sizes,
%# but I know they are the same size (w/o question).
while(~feof(fidin1) && ~feof(fidin2))
datin1 = fread(fidin1,N,'float=>single',0,'l');
datin2 = fread(fidin2,N,'float=>single',0,'l');
%# the following line produces an error after 100
%# or more iterations in to the procedure …Run Code Online (Sandbox Code Playgroud) 我现在正致力于眼动追踪项目.在这个项目中,我正在跟踪摄像头视频中的眼睛(分辨率为640X480).
我可以在每一帧中找到并跟踪眼睛,但我需要找到瞳孔.我阅读了很多论文,其中大部分都是用Alan Yuille的可变形模板方法来提取和跟踪眼睛特征.任何人都可以帮助我使用任何语言的代码(matlab/OpenCV)吗?
我尝试过不同的阈值,但由于眼睛区域的分辨率低,它不能很好地工作.我非常感谢在视频中找到瞳孔甚至虹膜的任何帮助.

我的情况是,Matlab程序输出的大量数据需要存储在一个特定的位置,这个位置可能因机器而异.我想要的是一个全局变量,它在启动时为每台机器设置.然后,各种程序可以使用此变量来确定存储输出的目录. 请注意,该方法需要与平台无关,因为可能有3个操作系统将运行这些脚本.
我考虑的一种方法是使用setenv:
setenv('DATDIR',fullfile(path,to,dir));
Run Code Online (Sandbox Code Playgroud)
然后脚本/函数可以使用以下方法查询此变量:
savedir = getenv('DATDIR');
Run Code Online (Sandbox Code Playgroud)
在这种情况下,变量不受clearMatlab环境内部的影响.
我想要使用的另一种方法是简单地创建一个函数(如matlabroot),它在路径上并简单地返回一个分配了数据目录路径的字符串.
function path = datroot()
path = fullfile(path,to,dir);
end
Run Code Online (Sandbox Code Playgroud)
最后,我的问题是:还有另一种方法可以达到同样的效果吗?如果Matlab有自己的环境变量,我宁愿使用它们而不是函数或系统级变量.这可能吗?