gnuplot 与 iOS

2024-03-16

这里有人有在 iOS 上使用 gnuplot 的经验吗?我想在 iOS 设备上开发一个科学计算应用程序,并想使用 gnuplot 作为绘图引擎。有什么好的教程可以让我开始学习吗?


我有同样的一般问题,快速的谷歌搜索让我找到了以下应用程序,它似乎使用了 gnuplot。

https://apps.apple.com/us/app/icas-workstation-class-scientific/id394637176 https://apps.apple.com/us/app/icas-workstation-class-scientific/id394637176

我顺着线索来到了他们的网站:

http://alsoftiphone.com/iCAS/ http://alsoftiphone.com/iCAS/

我就此联系了他们,如果/当我得到回复时,我会跟进。


响应:

Hello,

正如您恰当地指出的那样,在应用程序中嵌入 gnuplot 时会出现一些复杂情况,特别是如果您打算动态创建和处置它。也就是说,gnuplot(从我使用的 v4.4.0 开始)不会显式释放它分配的一些内存,大概是因为它假设它在退出时会被释放,当它被用作一个独立的应用程序。这当然会导致内存泄漏。类似地,gnuplot 不会显式关闭其输出文件描述符(设置为stdout据我所知)。当主函数退出时,它也不会清除多重绘图模式,这是有问题的,因为下次您在嵌入式情况下调用 gnuplot 时,如果此后调用,某些全局变量将反映多重绘图模式。

对你来说幸运的是,我已经识别了他们,所以你不必像我一样追捕他们。但不幸的是,我没有为我的项目创建库,但以下是您需要对 gnuplot 源代码进行的相关更改。

plot.c第 #615 行,位于 else 块的末尾"if (interactive && term != 0)"的条件块main()函数(您还需要将其更改为适当的入口函数名称):

// Free replot_line
if (replot_line != NULL)
{
    free(replot_line);
    replot_line = NULL;
}

plot.c第 #680 行,在末尾的“return exit_status”之前main()功能:

// Free replot_line if it was allocated
if (replot_line != NULL)
    free(replot_line);

// Clear multiplot mode, if it was active
if (multiplot)
    term_end_multiplot();

// Close current file
if (gpoutfile)
    fclose(gpoutfile);

另一个问题是 gnuplot 被编写为使用 stdin 和 stdout,因此对于我的应用程序,我将它们替换为我自己的适当文件描述符,作为 gnuplot 的接口。这将是特定于实现的,所以我不会列出我自己的特定更改,但您基本上需要查看 gnuplot 源代码中的 stdin 和 stdout 实例,并根据您的需要替换它们。

你也会想要#define NO_GIH in config.h.

除此之外,您可能需要为您的应用程序硬编码适当的 gnuplot 终端类型(我在应用程序中使用了 SVG)。

我希望这有帮助。

此致,

安东尼奥·拉加纳

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gnuplot 与 iOS 的相关文章

  • ObjC <-> Swift 桥接和工厂方法

    我想从 Swift 使用一些 Objective C 类 由于超出了这个问题范围的原因 我的班级init方法被标记为不可用 相反 有一个工厂方法 这是我的班级的简化形式 interface MyClass NSObject instance
  • 将第 3 方库添加到 iPhone 应用程序时如何设置“标题搜索路径”的路径

    我想添加第 3 方库语音转文本 https github com todoroo iPhone Speech To Textto my Xcode项目 我只是拖xcodeproj文件在我的 iPhone 项目中 然后我按照目标依赖项 将二进
  • Xcode UI 测试 - 通过 id 在 Webview 中查找元素

    我们的应用程序是混合的 包含 webview 我正在尝试使用 Xcode UI 测试自动化我们的应用程序 我能够使用以下方法找到网络按钮 let app XCUIApplication app launch let button app s
  • AVAssetExportSession 输出文件

    AVAssetExportSession 输出文件应该是什么样子 我正在尝试压缩 ALAsset 项目中的视频 但它不起作用 我猜输出文件与它有关 这是我正在使用的代码 NSString destinationPath NSHomeDire
  • 当 Firebase 函数以 Swift 结束时

    我在我的应用程序中使用 Firebase 它查询大量用户并获取所需的特定数据 但是当它开始查询时 其余功能也继续运行 而不仅仅是查询 所以我无法理解当它结束时 例如在这段代码中 ref observeEventType ChildAdded
  • ios - 使用 SIGPIPE 和 SIG_IGN 的信号函数

    我加入了一个旧项目 我发现了这条线 BOOL application UIApplication application didFinishLaunchingWithOptions NSDictionary launchOptions si
  • iOS SDK:MapKit MKPolyLine 未显示

    我试图在地图上显示多段线 但该线没有显示 我尝试了很多事情 但注意到似乎有用 我检查了核心数据函数 它正在返回数据 所以这不是问题 它必须是我在地图点创建或地图上绘制的某个地方 我猜 我确信一定是某个地方出了点小错误 但我找不到它 My c
  • 有没有办法更改 UITabBar 或 UITabBarItem 中的文本位置?

    这是我打算放在屏幕上的自定义选项卡栏 然而 我的搭档希望文字稍微向上一些 我怎样才能这样做呢 为什么不为视图控制器设置一个空的标题属性 并将标题添加到选项卡的自定义图像中 UPDATE 为了回答的完整性 来自评论和ios标签栏在没有图像时将
  • UIAlertView 之上的 UIView

    在我的应用程序中 使用了锁定屏幕 有时一个UIAlertView如图所示 现在当用户将应用程序发送到后台并再次将其置于前面时 UIAlertview会显示在锁定屏幕上方 是否有可能添加一个UIViewController的观点高于一切 即高
  • 如何通过单击颤动推送通知来打开特定屏幕

    我试图在单击推送通知时打开特定屏幕 我的有效负载如下所示 var payload notification title notificationTitle body notificationMessage click action scre
  • 运行 pod install 时出错 - 在目标“Runner”上自动分配版本“8.0”的平台“iOS”

    你好 我无法用 Cocoapods 解决这个问题 任何人都可以帮助我 这是我第一次使用这个导入 导入 包 flutter vlc player flutter vlc player Dart 而不是可能出什么问题 我在mac上使用andro
  • 找不到 -lAFNetworking Xcode 问题的库

    ld warning directory not found for option L Users kh Library Developer Xcode DerivedData om euxqzibzllbcmndwqrgthdeotiro
  • 如何使用所有类型的 UTI 初始化 UIDocumentPickerViewController

    我想打开 UIDocumentPickerViewController 并且它应该允许用户选择所有类型的文件 我尝试在 UIDocumentPickerViewController init 方法中提及所有 UTI 但仍然找不到某些文件 如
  • React Native 图像选择器图像上传在 iOS 上不起作用

    我在通过 fetch 和 react native image picker 将图像上传到 Multer 和 Express 后端时遇到问题 下面是我的 React Native 代码 try const data new FormData
  • UISlider 的自定义 UIImage 设置为 UIImageRenderingModeAlwaysTemplate

    我正在尝试自定义外观UISlider通过为拇指 minimumTrack 和 MaximumTrack 设置自定义图像 如下所示 let sliderThumbImage UIImage named slider thumb volumeS
  • 如何确定当前处于活动状态的视图控制器/显示视图的视图控制器?

    在我的应用程序中 我正在排队一些本地通知 当它们触发时我必须呈现模式视图 问题是我有许多视图控制器 其中任何一个当前都可能处于活动状态 因此需要呈现模式视图控制器 如何确定当前正在使用哪一个 我将导航控制器设置为 Windows 根视图控制
  • 修剪 UIImage 边框

    这是我想要修剪的图像的示例 我想去掉图像周围的边框 在本例中是顶部和底部的黑条 我在Github上找到了一个库 CKImageAdditions https github com cmkilger CKImageAdditions 但是它似
  • 使用react-native使用WebView设置用户代理

    我想修改 WebView 中的用户代理字符串 以便在服务器端我可以检测到请求来自我的反应本机应用程序 我想使用 WebView 中的 source 属性来做到这一点 对于 IOS 和 Android 我该如何执行此操作 您只需将其设置为 W
  • 无法创建本机类型“NSObject”的实例

    我在执行下面的代码时遇到此错误 未能创建本机类型的实例 NSObject 可以通过将 Class ThrowOnInitFailure 设置为 false 来忽略此情况 var alert new UIAlertView Error Som
  • Cocoapods 框架不支持配置文件

    我是 iOS 开发领域的新手 我正在从事 iOS 应用程序开发工作 我正在使用 Cocoapods 集成 Alamofire 和 KeychainSwift 等第三方库 当我导出存档以从本地生成 ipa 文件时 它工作正常 但是当我尝试在

随机推荐

  • 在 Windows 7 x86 上安装 Thin 时出现问题

    我在获取时遇到问题thin http code macournoyer com thin 在我的 Windows 7 机器上工作 我已经安装了 eventmachine v0 8 1 gt gem install Thin 忽略依赖项检查
  • 如何将流数据写入Kafka?

    我正在尝试对主题数据进行一些丰富 因此 使用 Spark 结构化流从 Kafka 接收器读回 Kafka val ds spark readStream format kafka option kafka bootstrap servers
  • 如何使用 Common Lisp 获得列表的所有可能排列?

    我正在尝试编写一个 Common Lisp 函数 该函数将给出列表的所有可能排列 每个元素仅使用一次 例如 列表 1 2 3 将给出输出 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 我已经写过一些有用的东西 但它
  • 如何使用 JNA 运行 chrome?

    我写了一些java代码 如何在 Windows 32 位 中使用 JNA 运行 chrome 然后我喜欢了解它的含义 如您所知 FindWindow 是一个简单的解决方案 但如果 chrome 不运行 它就不起作用 查找窗口示例 http
  • 通过一个报告用户运行所有 SSRS 报告,忽略自己的用户域

    我有以下代码 它从 SSRS 服务器返回报告 然后将路径存储到每个单独的列表 允许用户从应用程序内运行它们 下面的工作正常 NetworkCredential serviceCredentials new NetworkCredential
  • Destroy_with_password 始终返回 false

    以现有问题为基础演练如何需要密码才能删除用户帐户 https stackoverflow com questions 39373655 ruby on rails devise require password to delete acco
  • 如何在隐藏“display: none;”时渲染传单地图家长

    在我的页面上显示传单地图时 我遇到奇怪的行为 通常情况下 地图会按预期渲染并且运行良好 但是 我只想在我在 javascript 中检测到的表单中发生错误时才显示地图 所以如果我设置父级 div to display none 并根据需要稍
  • 无法将数据移出互斥体

    考虑下面的代码示例 我有一个向量JoinHandlers我需要它迭代以连接回主线程 但是 这样做后我收到错误error cannot move out of borrowed content let threads Arc new Mute
  • 使用 Internet Explorer 8 进行提示()

    我很难找到解决我的问题的方法 这是一个代码片段 var ans prompt Mot de passe if ans ans null doPostBack Page ans else window location Erreurs Not
  • 如何在 npm 中升级全局包的依赖项

    我已经全局安装了pouchdb server我收到了这条消息graceful fs npm install g pouchdb server npm WARN deprecated email protected cdn cgi l ema
  • 修改 NumPy 数组的特定行/列

    如何修改 NumPy 数组的特定行或列 例如 我有一个 NumPy 数组 如下所示 P array 1 2 3 4 5 6 如何更改第一行的元素 1 2 3 to 7 8 9 所以这样P会变成 P array 7 8 9 4 5 6 同样
  • Java SimpleDateFormat 解析时区,如 America/Los_Angeles

    我想用Java解析以下字符串并将其转换为日期 DTSTART TZID America Los Angeles 20140423T120000 我试过这个 SimpleDateFormat sdf new SimpleDateFormat
  • 用户登录后调用方法

    我想知道用户登录后是否可以调用函数 这是我要调用的代码 point this gt container gt get process points point gt ProcessPoints 1 this gt container 您可以
  • 如何避免单元测试中的浮点舍入错误?

    我正在尝试为一些对单精度浮点数数组进行操作的简单向量数学函数编写单元测试 这些函数使用 SSE 内在函数 并且在 32 位系统上运行测试时出现误报 至少我认为 测试在 64 位上通过 当操作遍历数组时 我积累了越来越多的舍入误差 这是单元测
  • 将最新的各种用户元数据标签添加到用户行

    我有一个 postgres 数据库 其中包含用户表 用户 ID 名字 姓氏 和用户元数据表 用户 ID 代码 内容 创建日期时间 我通过代码将每个用户的各种信息存储在用户元数据表中 并保留完整的历史记录 例如 一个用户 userid 15
  • 自定义 MapView 抛出 NoSuchMethodException,但它就在那里!

    我正在尝试实现自定义 MapView 在我的 MapActivity 名为 mainmap 中 我有一个扩展 MapView 的内部类 private class Lmapview extends MapView public Lmapvi
  • igraph - 绘制有向网络创建三角形边

    我正在尝试绘制一个有向网络 该网络仅具有细边和箭头 我不断得到看起来是三角形的边缘 我怎样才能得到一条简单的直线和一个箭头 vertice1 lt c a b c vertice2 lt c d e f edge list lt data
  • TCPStream.Read 会阻塞直到收到发送消息中的所有数据吗?

    我编写了一个多线程简单服务器 它使用 clientStream Read message 0 4096 阻塞直到客户端发送消息 然后代码继续处理该消息 到目前为止我只用它来发送短命令 ex login username login 但我担心
  • 将一个范围从一个电子表格复制到另一个电子表格

    我试图将数组的内容从一张工作表 其中数组是通过迭代并推送用户选择的列的选择项来创建的 复制到不同电子表格中的另一张工作表 我遇到了许多关于如何将一个范围从一个电子表格导入到另一个电子表格的问题和答案 但没有一个对我有用 所有问题和答案都返回
  • gnuplot 与 iOS

    这里有人有在 iOS 上使用 gnuplot 的经验吗 我想在 iOS 设备上开发一个科学计算应用程序 并想使用 gnuplot 作为绘图引擎 有什么好的教程可以让我开始学习吗 我有同样的一般问题 快速的谷歌搜索让我找到了以下应用程序 它似