研究生复试数据库面试题:MATLAB面试题

我在MATLAB中编程了很多年,但是在过去的几年中只使用 R,所以我有点不习惯。今天我正在面试一位自称是 MATLAB 专家的候选人。

我应该问哪些 MATLAB 面试问题?

其他一些有资源的网站:

"Matlab interview questions" on Wilmott "MATLAB Questions and Answers" on GlobaleGuildLine "Matlab Interview Questions" on CoolInterview
17

这有点主观,不过我会咬...;)

对于自称是 MATLAB 专家的人来说,以下是我个人希望他们能够在采访中说明的一些事情:

如何使用arithmetic operators矩阵元素的操作。

熟悉所有基本的data types以及如何在它们之间轻松转换。

对矩阵索引和赋值的完整理解,无论是逻辑,线性还是下标索引(基本上,this page of the documentation上的所有内容)。

manipulate multi-dimensional arrays的能力。

preallocationvectorization等优化的理解和常规使用。

了解如何在多种不同情况下处理file I/O

熟悉handle graphics和所有的basic plotting capabilities

the types of functions in MATLAB,特别是nested functions的深入了解。具体来说,给定以下函数:

function fcnHandle = counter
  value = 0;
  function currentValue = increment
    value = value+1;
    currentValue = value;
  end
  fcnHandle = @increment;
end

他们应该能够告诉您以下代码中变量output的内容,而无需在 MATLAB 中运行它:

>> f1 = counter();
>> f2 = counter();
>> output = [f1() f1() f2() f1() f2()];  %# WHAT IS IT?!
13

我们在 MathWorks 的技术支持部门有几个新人。这都是招聘后的事情 (我没有参与招聘),但我喜欢结识人,所以我给他们“不可能和自适应的 MATLAB 编程挑战”

我从 MATLAB 开始,给他们一些.MAT 文件,里面有数据。我要求他们分析它,没有进一步的指导。我可以很受到他们的实际经验。

http://blogs.mathworks.com/videos/2008/07/02/puzzler-data-exploration/

实际的挑战并不意味着什么,我从观看他们的尝试中学到了更多。

他们是基于脚本、函数、命令行还是 GUI?他们似乎清楚地知道他们要去哪里吗?他们对自己正在做的事情有什么信心?

他们是计算机科学家还是学会编程的工程师。CS 专业的学生倾向于做一些事情,例如立即关闭括号,以及其他类似的小优化。使用 MATLAB 一段时间的人倾向于从绘图命令中捕获句柄以供以后使用。

他们浏览文档的速度有多快?一旦我看到他们走在“正确”的道路上,那么我将改变挑战,看看他们可以多快地绘制,拉出子矩阵等...

我会扔掉欧拉计划中的一些旧东西。大多数情况下,只是增加问题,直到我们中的一个被难住。

10

浮点问题

鉴于Matlab的主要(唯一?)数据类型是双精度浮点矩阵,并且大多数人使用浮点运算-无论他们是否知道-我很惊讶没有人建议问基本的浮点问题。

IEEE dp fpn|x|的范围是多少?

大约有多少个 IEEE dp fpns?

什么是machine epsilon

x = 10^22完全可以表示为 dp fpn。x 正下方和正上方的 fpns xp 和 xs 是什么?

[1,2)中有多少个 dp fpn?1 英寸方糖的边缘有多少个原子?

Explain whysin(pi)~=0,butcos(pi) =-1.

为什么if abs(x1-x2) < 1e-10 then是一个糟糕的收敛测试?

为什么if f(a)*f(b) < 0 then是一个坏标志检查测试?

区间[a,b]的中点c可以计算为:

 c1 = (a+b)/2, or 
 c2 = a + (b-a)/2, or
 c3 = a/2 + b/2. 

你更喜欢哪一个?解释一下。

在 Matlab 中计算:a = 4/3; b = a-1; c = b+b+b; e = 1-c;在数学上,e应该为零,但 Matlab 给出e = 2.220446049250313e-016 = 2^(-52),机器 epsilon(eps)。解释。

给定realmin = 2.225073858507201e-308,并且 Matlab 的u = rand给出了均匀分布在开放间隔(0,1)上的 dp fpn:

是浮点数[2^(-400), 2^(-100), 2^(-1)]

= 3.872591914849318e-121,7.888609052210118e-031,5.000000000000000e-001

同样可能由兰特输出?

Matlab 的rand使用 Mersenne Twister rng,其周期为(2^19937-1)/2,但只有大约2^64dp fpns。解释。

找到最小的 IEEE 双精度 fpnx1 < x < 2,使得x*(1/x) ~= 1

编写一个简短的 Matlab 函数来搜索这样的数字。
答案:Alan Edelman, MIT

您会乘坐由您编写软件的飞机吗?

Colin K 不会雇用我(可能会解雇我)说“Matlab 的主要(唯一?)数据类型是双精度浮点矩阵”。

当 Matlab 启动时,这就是用户所看到的全部,但是多年来,他们添加了他们 coyly 叫的“存储类”:single,(u)int8,16,32,64 等。但是这些并不是真正的类型,因为您无法对它们进行 USEFUL 算术运算。这些存储类的算术速度如此之慢,以至于它们作为类型毫无用处。是的,它们确实可以节省存储空间,但是如果您不能对

请参阅my post (No. 13) here,其中我显示了 int32s 上的算术比 double 算术慢 12 倍,MathWorkser Loren Shure 说:“默认情况下,MATLAB 变量是双精度数组。在过去,这些是 MATLAB 中唯一的数组。那时,甚至字符数组也存储为 double 值。”

对我来说,Matlab 中最大的缺陷是缺乏适当的类型,例如 C 和 Fortran 中可用的类型。

顺便问一下,科林,你对问题 14 的回答是什么?

8

询问有关他在您的域中应用MATLAB的专业知识和经验的问题。

询问他如何设计一个在 MATLAB 中实现的应用程序。如果他指的是 MATLAB 的最新功能,请他解释它们,以及它们与它们所取代或补充的旧功能有何不同,以及为什么它们更可取 (或不可取)。

询问有关他在 MATLAB 数据结构方面的专业知识的问题。我遇到的许多 MATLAB“专家”都非常擅长编写代码,但在确定手头工作的最佳数据结构方面却很差。这通常是他们成为领域专家的直接结果,他们选择了 MATLAB,而不是接受过计算机培训。结果通常是好的代码,必须弥补错误的数据结构。

询问有关他使用其他语言 / 系统的经验(如果有的话)的问题,并邀请他扩展他对 MATLAB 的相对优势和劣势的观察。

询问有关优化 MATLAB 程序的顶级提示。期待答案:矢量化,预分配,清除未使用的变量等。

询问他对 MATLAB 分析器,调试器和lint工具的熟悉程度。我最近发现,在使用该工具的 10 年中,MATLAB 的“专家”从未找到过该分析器。

这应该让你开始。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(185)
土地利用现状数据库:如何使用R找到具有不同土地利用分类的栅格的平均坡度
上一篇
数据库常见面试问题:数据结构面试问题(data structures interview question)
下一篇

相关推荐

  • 无线高速数据采集:Matlab数据采集工具箱

    关于无线高速数据采集的问题,在mathworks acquisition中经常遇到,我花了很多时间阅读National Instruments产品及其与LabVIEW一起使用时的功能。但是,LabVIEW 和 National Instruments 硬件几乎是我唯一看过的东西,我很好奇在采集和控制方面有什么可以与 LabVIEW 竞争。…

    2024-01-16 00:48:41
    0 53 50
  • matlab 转python:从Matlab到Python的程序转换实践

    Matlab转Python是指将Matlab代码转换为Python代码的过程。这可以通过使用特定的转换工具来实现,例如MATLAB2Python,MATLAB2Py,Octave2Py等等。MATLAB2Python是一个开源的转换工具,可以将Matlab代码转换为Python代码。它支持Matlab语法,并且可以将Matlab代码转换成Python代码,以便在Python环境中运行。…

    2023-10-01 15:09:57
    0 11 71
  • matlab linux版:如何使用Matlab在Linux系统上进行数据分析

    Matlab Linux版是MathWorks公司推出的一款面向Linux系统的数学软件,它可以帮助用户进行数学建模、编程和数据可视化等操作。Matlab Linux版支持多种Linux发行版,包括Ubuntu、Red Hat、SUSE等,并且支持64位和32位的操作系统。Matlab Linux版提供了强大的数学建模和编程功能,可以帮助用户快速完成复杂的数学计算和编程任务。此外,Matlab Linux版还提供了丰富的科学函数库,可以帮助用户快速实现复杂的科学计算。…

    2023-07-31 12:54:23
    0 61 72
  • matlab代码转python实现快速、高效的编程

    matlab代码:a = [];…

    2023-07-04 11:54:05
    0 55 38
  • Matlab中cftool工具箱:Matlab数据采集工具箱

    关于Matlab中cftool工具箱的问题,在mathworks acquisition中经常遇到,我花了很多时间阅读National Instruments产品及其与LabVIEW一起使用时的功能。但是,LabVIEW 和 National Instruments 硬件几乎是我唯一看过的东西,我很好奇在采集和控制方面有什么可以与 LabVIEW 竞争。…

    2023-11-04 05:46:42
    0 95 62
  • python abs是什么意思获取绝对值的简单方法

    示例示例Python abs() 函数返回一个数字的绝对值。示例:…

    2023-07-17 01:26:50
    0 91 83
  • python float函数:如何使用Python float函数转换数字

    示例示例Python float函数用于将一个字符串或数字转换为浮点数。它是内置函数,可以直接在Python中使用。语法:…

    2023-07-16 11:02:48
    0 38 37
  • python零基础教程从入门到精通

    示例示例Python零基础教程是专门为初学者准备的,旨在帮助他们快速掌握Python语言的基本知识。开始学习Python…

    2023-02-10 00:47:28
    0 36 50

发表评论

登录 后才能评论

评论列表(42条)