Runhua's Blog

森林睡了,故事醒了

张量分析简论:广义基底与张量记号

广义基底、矩阵与二阶张量

注:本文笔记基于Simmonds《A Brief on Tensor Analysis》(第二版),仅用于学习与交流目的。 广义基底 设 ${\mathbf{g}_1, \mathbf{g}_2, \mathbf{g}_3}$ 是一组固定的、不共面的向量,则任意矢量 $\mathbf{v}$ 都可以唯一地表示为: \[\mathbf{v} = v^1\mathbf{g}_1 + ...

张量分析简论:介绍——矢量与张量

矢量点积、张量投影与笛卡尔基底

注:本文笔记基于Simmonds《A Brief on Tensor Analysis》(第二版),仅用于学习与交流目的。 点积与叉积的另一种解释 对于点积,为了方便起见以做功为例,在力 $\mathbf{F}$ 的作用下,物体移动的位移为 $\mathbf{D}$,此时力做功数值为: \[W = \mathbf{F}\cdot \mathbf{D}\] 从数学角度可以认为力...

与App扩展共享Core Data

App Group的使用

如果使用 Core Data 作为数据库解决方案,则与 Today 扩展、Action 扩展或 Share 扩展共享您的 Core Data 数据库非常常见。在Filer应用程序中,主要需要将 Core Data 数据与 Finder 扩展共享。 应用程序扩展和包含的应用程序无法直接访问彼此的容器,即使应用程序扩展包嵌套在其包含的应用程序的捆绑包中。幸运的是,苹果可以轻松地与您的扩展共享持...

Swift 创建多个 NSMenu 子菜单栏

嵌套式菜单栏

创建单个子菜单栏 func createSingleSubMenu() -> (subMenu: NSMenu, menuItem: NSMenuItem) { let submenu = NSMenu() let mainDropdown = NSMenuItem(title: "1-2", action: nil, keyEquivalent...

在Xcode中调试App Extension程序

Debug for App Extensions

Xcode默认情况下没有为开发人员提供直接启用对扩展应用程序调试的方法。因此如果在程序内部打上断点,在程序执行过程中程序将不会在遇到断点的时候停止,然而大部分情况下调试程序仍然是开发过程中不可或缺的环节。好在Xcode只是默认没有启动对扩展应用程序调试的功能,在实际每次调试过程中启用该扩展即可。 为App Extension程序开启调试功能 在执行程序之前,确保Xcode运行目标(targ...

自适应网络模糊推理系统(ANFIS)Pytorch源码浅析

Pytorch for ANFIS

标注 本文主要分析由James Power开源于Github上的anfis-pytorch代码。 关于ANFIS的基础知识参考浅析自适应网络模糊推理系统(ANFIS) 代码框架分析 ANFIS框架主要分为三个文件: anfis.py 定义ANFIS网络核心的部分。 membership.py 该文件下定义了各种各样的隶属函数。 Experimental.p...

Filer

在macOS上实现鼠标🖱️右键创建文档

Welcome to Filer Filer is an Finder extension for your Mac which enables you to easily create files in supported formats anywhere on the system. This extension is simple and easy to use, completel...

Swift 在Mac上复制文件

FileManager.default.copyItem

注意 在macOS1上使用该功能需要删除App SandBox功能. class File { var filename: String var fileExtension: String init(fileName: String, fileExtension: String) { self.filename = fileN...

在Command Line Tools里面读取文件

自定义Bundle文件

通常,在Command Line Tools里面Xcode无法直接读取外部添加的文档文件。然而可以通过自定义添加一个Bundle来实现对外部文档的读取。 在Xcode里, 选择File –> New –> Target,在Target内选择Bundle,自定义该Bundle的名称,如DataBundle。 将文件添加到此捆绑包中。将文件添加到Xcode,然后确保捆绑包在其目标...

隶属函数Membership Function

模糊推断基础概念

定义 隶属函数(membership function)也称为归属函数或模糊元函数,是表征某一元素是否属于某一集合的模糊概念,与指示函数类似。指示函数定义一个集合中的元素是否属于特定子集合。一元素的指示函数的值可能是0或是1,而一元素的隶属函数会是0到1之间的数值,表示元素属于某模糊集合的真实程度(degree of truth)。 例子 例如质数为一集合,整数3属于质数,其指示函数为1,...

浅析自适应网络模糊推理系统(ANFIS)

模糊推断与神经网络的结合

摘要 本文主要介绍分析由Jyh-Shing Roger Jang于1993年发表的开创性论文ANFIS: adaptive-network-based fuzzy inference system 模糊IF-THEN准则 模糊IF-THEN准则有以下两种常用的形式: IF A THEN B, 其中A与B都是模糊用词。例如If pressure is high, then...

xclangspec文件分析

使Xcode支持自定义语法高亮

Xcode的程序包路径下存在以.xclangspec为后缀的文件夹。这些文件夹定义了Xcode用到的各种语言的语法说明,为JSON格式的文件。 在Xcode程序包中进入如下文件夹即可找到.xclangspec文件 ~/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/...

INS/DVL组合导航算法

间接法进行导航参数的估计

组合导航估计方法 直接法:将各种导航参数作为主要状态,滤波估值的主要部分为导航参数的估计值。然而直接法建立的状态方程与量测方程一般为非线性的。 间接法:以导航参数的误差作为估计值。通常建模过程中可以忽略二阶小量,所以一般为线性方程。 系统误差模型 误差模型由INS建模与DVL建模导致的误差组成。根据捷联惯性导航系统长期工作时的特点,选择位置误差、速度误差、失准角、陀螺漂移作为状...

使用SwiftUI获取macOS任意文件夹下的图片

NSOpenPanel的用法

NSOpenPanel框架允许开发人员获取macOS系统本地的资源库,如果用户想通过访问路径获取加载本地资源库中的一张照片,可使用以下函数打开仪表盘: func showOpenPanel() -> URL? { let openPanel = NSOpenPanel() openPanel.allowedContentTypes = [.image] ...

如何将SwiftUI视图转换为图像

drawHierarchy的用法

SwiftUI的视图没有将视图渲染为图像的内置功能,但我们可以在很短的时间内自己编写视图。这里的关键是使用UIHostingController包装视图,然后将其视图层次结构渲染为UIGraphicsImageRenderer。 这最好使用View上的扩展程序完成,因此您可以自然调用它。这应该将视图包装在托管控制器中,将托管控制器视图的大小调整为SwiftUI视图的内在内容大小,清除任何背...

矩阵迹的性质

一些常用的矩阵期望计算准则

基础性质 设$r$为标量,则有 \[tr(\pmb{A}+\pmb{B}) = tr(\pmb{A}) + tr(\pmb{B})\] \[tr(r\pmb{A}) = r \cdot tr(\pmb{A})\] \[tr(\pmb{A}) = tr(\pmb{A}^T)\] 矩阵乘积的迹 \[tr(\pmb{A}\pmb{B}) = tr(\pmb{B}\pmb{A})\] \...

扩展卡尔曼滤波原理

基于泰勒展开式的卡尔曼滤波公式变形

摘要 本文在线性最优滤波的基础上结合正交投影详细介绍扩展卡尔曼滤波的数学原理并给出了数学推导过程。 基础背景 扩展卡尔曼滤波[1]作为卡尔曼滤波的扩展,在非线性系统的应用中取得了相当的成功。阅读本文前需要读者先行阅读卡尔曼滤波原理[2]并理解其中的正交投影的数学原理。本文数学推导部分采用的标记与卡尔曼论文的标记类似。 符号约定 本文主要处理离散系统,即信号将会在相同的时间间...