小编eph*_*ith的帖子

为什么MATLAB无法成功读入二进制文件?

Matlab无法从文件中读取指定数量的元素.我有一个简单的程序,需要读取两个文件,对数据执行线性操作,并将组合结果写入第三个文件.

我的问题是:1)为什么Matlab无法读取指定数量的元素,2)是否有解决方法?你的任何想法都会有所帮助.

输入文件的一些细节:

  • 它们很大(约18GB)
  • 它们都是相同的尺寸(确切地说)

有关程序的详细信息(2-4以feof检查两个文件为条件:

  1. 打开输入和输出文件进行读写(相应)
  2. N从每个输入文件中读取浮点数(N*4个字节)
  3. 对数据执行操作(比如0.5*(datin1 + datin2))
  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)

file-io matlab

7
推荐指数
1
解决办法
1639
查看次数

关于在视频中找到学生

我现在正致力于眼动追踪项目.在这个项目中,我正在跟踪摄像头视频中的眼睛(分辨率为640X480).

我可以在每一帧中找到并跟踪眼睛,但我需要找到瞳孔.我阅读了很多论文,其中大部分都是用Alan Yuille的可变形模板方法来提取和跟踪眼睛特征.任何人都可以帮助我使用任何语言的代码(matlab/OpenCV)吗?

我尝试过不同的阈值,但由于眼睛区域的分辨率低,它不能很好地工作.我非常感谢在视频中找到瞳孔甚至虹膜的任何帮助.

样本图片

c matlab opencv eye-tracking iris-recognition

5
推荐指数
2
解决办法
2752
查看次数

在Matlab中设置启动变量的最佳方法是什么,不受"clear"等命令的影响?

我的情况是,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有自己的环境变量,我宁愿使用它们而不是函数或系统级变量.这可能吗?

matlab startup environment-variables

1
推荐指数
1
解决办法
1101
查看次数