MATLAB面试问题?


荧惑
2025-05-07 10:48:36 (1天前)
  1. 专家。

什么MATLAB

访问
</跨度>
我应该问哪些问题?

其他一些有此资源的网站:

“Matlab的

访问
</跨度>
关于威尔莫特的问题
GlobaleGuildLine上的“MATLAB问题与解答”
“Matlab的

访问
</跨度>
关于CoolInterview的问题

7 条回复
  1. 0# 敢嫁就敢娶 | 2019-08-31 10-32



    询问有关他的专业知识和申请经验的问题

    MATLAB

    在您的域中。



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



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



    向其他语言/系统询问有关其经验的问题,并邀请他扩展他对MATLAB相对优势和劣势的观察。



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



    询问他是否熟悉MATLAB分析器,调试器和

    皮棉

    工具。我最近发现这里的MATLAB“专家”从未在10年内使用该工具找到了分析器。



    这应该让你开始。


  2. 1# 無口君 | 2019-08-31 10-32



    这有点主观,但我会咬……;)



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




    • 怎么用

      算术运算符

      对于矩阵

      要么

      元素操作。


    • 熟悉所有基本知识

      数据类型

      以及如何在它们之间毫不费力地进行转换。


    • 完全理解矩阵索引和赋值,无论是逻辑,线性还是下标索引(基本上,所有内容都在上面)

      这个文档的页面

      )。


    • 一种能力

      操纵多维数组




    • 理解和定期使用优化

      预分配



      矢量




    • 了解如何处理

      文件I / O.

      对于许多不同的情况。


    • 熟悉

      处理图形

      和所有的

      基本的绘图功能





    • 熟悉的知识

      MATLAB中的函数类型

      , 特别是

      嵌套函数

      。具体来说,给出以下功能:




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

      2.     </code>
      3.   </pre>
      4.   <P>
      5.     他们应该能够告诉你变量的内容
      6.      <code>
      7.       output
      8.     </code>
      9.      将在以下代码中,
      10.     <EM>
      11.       
      12.     </EM>
      13.      MATLAB中运行它:
      14.   </p>
      15.    <pre>
      16.     <code>
      17.       >> f1 = counter();
      18. f2 = counter();
        output = [f1() f1() f2() f1() f2()]; %# WHAT IS IT?!

      19.     </code>
      20.   </pre>
      21. </LI>

  3. 2# 机器设备维修 | 2019-08-31 10-32



    取决于你想要测试的东西。



    去测试

    MATLAB

    流畅性,有几个很好的Stack Overflow问题可以用来测试,例如数组操作(

    例1



    例2

    ),或者你可以使用修复 - 这个问题就像

    这个问题

    (我承认,我非常喜欢那个),或者深入研究

    这个清单

    对于一些高度MATLAB特定的东西。如果你想有点意思,请提出类似的问题

    这个

    ,最好的解决方案是循环,典型的MATLAB思维方式解决方案只会填满内存。



    但是,询问与您的工作领域相关的更一般的编程问题并查看它们是否通过MATLAB解决问题可能更有用。



    例如,由于我进行图像分析,我可能会要求他们设计一个用于加载不同格式图像的类(MATLAB专家应该知道如何做OOP,毕竟它已经出现了两年),然后问关于如何处理大图像的后续行动(我想查看将使用多少内存的检查 - 或者他们可能知道

    memory.m

    1. - 并了解MATLAB通常如何处理双打)等。


  4. 3# 绵绵 | 2019-08-31 10-32



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



    我从MATLAB开始,给他们一些带有数据的.MAT文件。我请他们分析,没有进一步的指示。我可以很快感受到他们的实际体验。




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



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



    他们是在制作脚本,函数,命令行还是基于GUI?他们似乎清楚地知道他们要去哪里吗?他们对自己所做的事情有多大的信心?



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



    他们在文档中导航的速度有多快?一旦我看到他们走向“正确”的道路,那么我将改变挑战,看看他们能够多快地完成情节,拉出子矩阵等……



    我会抛出Project Euler的一些旧东西。大多数情况下只是提出问题,直到我们中的一个人难倒。


  5. 4# 樱花弄๑•ั็•็ | 2019-08-31 10-32



    可能的问题:
    我有一个n R,G,B三元组的阵列A.它是一个3xn矩阵。我有一个1xn形式的另一个数组B,它存储每个三元组的索引值(与集群的关联)。



    如何在3D空间中绘制A的三元组(使用

    plot3

    功能),根据B中的指数对每个三联体着色? (目标是定性评估我的聚类)



    实际上,非常优秀的MATLAB新手程序员将无法为您提供高效(== MATLAB风格)的解决方案。但是,如果您了解MATLAB,这是一个非常简单的问题。


  6. 5# 子阳 | 2019-08-31 10-32



    浮点问题



    鉴于

    MATLAB
    </强>
    主要(仅?)数据类型是双精度浮点矩阵,并且大多数人使用浮点运算 - 无论他们是否知道 - 我很惊讶没有人建议询问基本的浮点问题。以下是一些可变难度的浮点问题:







    1. 什么是范围

      |x|

      ,IEEE dp fpn?





    2. 大概有多少IEEE dp fpns?





    3. 什么是

      机器epsilon







    4. x = 10^22

      完全可以表示为dp fpn。什么是fpns xp
      和xs正好在x以下?





    5. 有多少dp fpns

      [1,2)

      ?一个边缘有多少个原子
      1英寸糖块?





    6. 解释为什么

      sin(pi) ~= 0

      但是

      cos(pi) = -1






    7. 为什么是

      if abs(x1-x2) < 1e-10 then

      收敛性测试不好?





    8. 为什么是

      if f(a)*f(b) < 0 then

      一个糟糕的标志检查测试?





    9. 中点

      c

      间隔

      [a,b]

      可以计算为:




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

      2.     </code>
      3.   </pre>
      4.   <P>
      5.     你喜欢哪个?说明。
      6.   </p>
      7. </LI>
      8. <LI>
      9.   <P>
      10.     Matlab中计算:
      11.      <code>
      12.       a = 4/3;  b = a-1;  c = b+b+b;  e = 1-c;
      13.     </code>
      14. 在数学上,

        e

        应该是零,但Matlab给出

        e = 2.220446049250313e-016 = 2^(-52)

        ,机器epsiloneps)。说明。





    10. 鉴于

      realmin = 2.225073858507201e-308

      和Matlab的

      u = rand

      给出在开放区间(0,1)上均匀分布的dp fpn:



      是浮点数

      [2^(-400), 2^(-100), 2^(-1)]



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



      同样可能由兰特输出?





    11. Matlab的

      rand

      使用具有一段时间的Mersenne Twister rng

      1. <code>
      2. (2^19937-1)/2
      3. </code>
      4. ,但只有约
      5. <code>
      6. 2^64
      7. </code>
      8. dp fpns。说明。
      9. </p>
      10. </LI>
      11. <LI>
      12. <P>
      13. 找到最小的IEEE双精度fpn
      14. <code>
      15. x
      16. </code>
      17. <code>
      18. 1 < x < 2
      19. </code>
      20. 这样的
      21. <code>
      22. x*(1/x) ~= 1
      23. </code>
      24. </p>
      25. <P>
      26. 写一个简短的Matlab函数来搜索这样的数字。
      27. <BR/>

      回答:

      麻省理工学院的Alan Edelman





    12. 你会乘坐你的软件编写的飞机吗?



    13. </醇>



      科林K不会雇用我(可能会解雇我)说“那个
      Matlab的主要(仅?)数据类型是双精度浮点数
      点矩阵“。



      当Matlab开始时,所有用户都看到了,但这些年来
      他们添加了他们腼腆地称之为“存储类”的东西:单身,
      (u)int8,16,32,64等。但这些并不是真正的类型
      因为你不能对它们做有用的算术。算术
      这些存储类是如此之慢,以至于它们作为类型无用。
      是的,它们确实可以节省存储空间,但如果你不能这样做,那又有什么意义
      什么值得与他们?



      看到

      我的帖子(第13号)在这里

      ,我在哪里表明int32s上的算术慢了12倍
      双算术和MathWorkser Loren Shure所说的“By
      默认情况下,MATLAB变量是双精度数组。在古代
      几天,这些是MATLAB中唯一的数组。那时甚至
      字符数组存储为double值。“



      对我来说,Matlab中最大的缺陷是缺乏合适的类型,
      例如C和Fortran中提供的那些。



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


登录 后才能参与评论