Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 使用mcc R2015b编译时3D旋转速度慢_Matlab_3d_Mcc - Fatal编程技术网

Matlab 使用mcc R2015b编译时3D旋转速度慢

Matlab 使用mcc R2015b编译时3D旋转速度慢,matlab,3d,mcc,Matlab,3d,Mcc,我在使用R2015b部署的mcc编译器编译我的一个应用程序时遇到了一个奇怪的问题,3D视图的旋转(即使用工具栏中的rotate3D按钮)现在非常慢,而在使用R2013b编译完全相同的代码时,情况并非如此。在R2013b或R2015b环境中运行应用程序时,在这两种情况下,旋转都非常流畅/平滑 我在我的应用程序中尝试了一个相当于3D的简单得多的代码: function [] = TestCompiledRotationR2015b() %[ % Create random data

我在使用R2015b部署的mcc编译器编译我的一个应用程序时遇到了一个奇怪的问题,3D视图的旋转(即使用工具栏中的rotate3D按钮)现在非常慢,而在使用R2013b编译完全相同的代码时,情况并非如此。在R2013b或R2015b环境中运行应用程序时,在这两种情况下,旋转都非常流畅/平滑

我在我的应用程序中尝试了一个相当于3D的简单得多的代码:

function [] = TestCompiledRotationR2015b()
%[
    % Create random data
    azimuths = linspace(0, 359, 360) * pi / 180;
    elevations = linspace(0, 180, 181) * pi / 180;
    [A, E] = ndgrid(azimuths, elevations);
    Data = sin(7*(E-pi/2))./(7*(E-pi/2));
    Data(isnan(Data)) = 1;
    Data = Data .* abs(cos(0.5*A));

    ff = figure(42);
    X = cos(A) .* sin(E);
    Y = sin(A) .* sin(E);
    Z = cos(E);
    surf(X, Y, Z, abs(Data));

    % Set axes properties
    shading flat;   
    set(gca, 'DataAspectRatio', [1 1 1]);
    set(gca, 'Visible', 'off');
    xlim([-1 1]);
    ylim([-1 1]);
    zlim([-1 1]);

    uiwait(ff);
%]
我还尝试了更复杂的一个(使用GUI布局面板和我在应用程序中经常使用的卡)。。。。我记录了“渲染器”的详细信息以防万一(opengl在编译模式和非编译模式下都完全硬件加速)。。。但在我编译的应用程序中,无法重现缓慢的旋转

所以在这里,我只是想知道你们中是否有人在试验同样的问题(只有在使用R2015b编译时,3D速度才慢,并且仅适用于某些应用程序)。。。我认为我做的有些不对劲,但为什么它在R2013b中工作,为什么它在R2015b环境中仍然正常(即未编译…只有编译的R2015b引起了问题)完全是个谜

**编辑**

我尝试在编译模式和未编译模式下移动鼠标约1分钟的同时激活探查器,除了刷新率在编译模式下急剧下降(编译模式下约160次调用,而环境模式下约4100次调用)之外,没有什么特别之处


好的,经过多次测试后,问题似乎都与以下事实有关:我正在运行一个C#应用程序的matlab代码,该应用程序设计用于系统托盘:

以下所有测试均正常:

  • 使用
    mcc-m TestLaunchMyApplication.m直接创建可执行文件
  • 创建csharedlib并从c中的基本主代码调用它
  • 创建csharedlib并从基本c#winform应用程序调用它
仅从系统托盘c#应用程序调用“csharedlib”会导致问题。我试着设计更简单的系统托盘应用程序,它工作得很好,所以这不是我的错,而是我的错,需要修复对matlab代码的调用(可能是在错误的线程或错误的父线程中接收鼠标事件)


问题已结束。

已确认。。。对matlab代码的调用不在UI线程上。。。同步解决了这个问题(尽管我不明白为什么R2013b不能看到这个问题……反正就是这样)。