Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.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
Macos 是否可以从Matlab向OSX中的通知中心发送通知?_Macos_Matlab_Notifications - Fatal编程技术网

Macos 是否可以从Matlab向OSX中的通知中心发送通知?

Macos 是否可以从Matlab向OSX中的通知中心发送通知?,macos,matlab,notifications,Macos,Matlab,Notifications,我想在Matlab代码运行完毕后向通知中心发送通知。 我在山狮10.8.3上,有Matlab2012b。这可能吗?如果是,如何使用?使用两个功能: 从bash运行matlab 说完成或说错误() matlab-nojvm-nodesktop-r“run.m”和&say done | | say error 是“从命令行在Mac OS X 10.8上发送用户通知”的工具。Matlab可以使用或将命令发送到Mac OS X命令行。将这些放在一起,您可以在m文件中编写类似的内容: !terminal-

我想在Matlab代码运行完毕后向通知中心发送通知。 我在山狮10.8.3上,有Matlab2012b。这可能吗?如果是,如何使用?

使用两个功能:
  • 从bash运行matlab
  • 说完成
    说错误
    ()

    matlab-nojvm-nodesktop-r“run.m”和&say done | | say error

  • 是“从命令行在Mac OS X 10.8上发送用户通知”的工具。Matlab可以使用或将命令发送到Mac OS X命令行。将这些放在一起,您可以在m文件中编写类似的内容:

    !terminal-notifier.app/Contents/MacOS/terminal-notifier -message "Testing..."
    
    为了让事情变得更简单,您可能需要创建自己的函数,以便可以这样调用它:

    notify("Notifications from Matlab!")
    

    这是一个完整的函数。它将Matlab显示为名称和图标,单击通知将带您进入Matlab:

    function notify(message)
      escaped_message = strrep(message, '"', '\"');
      [~, ~] = system(['/usr/local/bin/terminal-notifier ' ...
                       '-title Matlab ' ...
                       '-group com.mathworks.matlab ' ...
                       '-activate com.mathworks.matlab ' ...
                       '-sender com.mathworks.matlab ' ...
                       '-message "' escaped_message '"']);
    end
    

    为了补充这些解决方案,这里介绍了如何通过Matlab函数和从命令行执行AppleScript的terminal命令来实现这一点。下面的函数采用
    消息
    参数和可选的
    标题
    副标题
    、和
    警报
    声音参数。还完成了输入的一些粗略逃逸。
    警报
    声音参数可以是系统首选项“声音”窗格“声音效果”选项卡中的任何命名声音,例如,
    “Sosumi”

    function status=notify(msg,titl,subtitl,alert)
    %NOTIFY  Display OS X notification message window
    %   NOTIFY(MESSAGE,TITLE,SUBTITLE,SOUND)
    
    rep = @(str)strrep(regexprep(str,'["\\]','\\$0'),'''','\"');
    cmd = ['osascript -e ''display notification "' rep(msg)];
    if nargin > 1 && ischar(titl)
        cmd = [cmd '" with title "' rep(titl)];
        if nargin > 2 && ischar(subtitl)
            cmd = [cmd '" subtitle "' rep(subtitl)];
            if nargin > 3 && ischar(alert) && ~isempty(alert)
                cmd = [cmd '" sound name "' rep(alert)];
            end
        end
    else
        cmd = [cmd '" with title "Matlab'];
    end
    status = system([cmd '"''']);
    

    您可以下载此功能的更完整版本。与基于的解决方案不同,我不相信通知菜单的图标可以更改。但是,该功能应该可以在任何OS X 10.8或10.9系统上运行,并且不需要安装/下载任何东西。这段代码是在OS X 10.9.3和10.11.4下测试的。

    如果我打开声音,而不是静音,这将起作用。是否可以显示类似于通知中心显示的通知?是否适用于您:?