Julia 中的 1 元素数组到标量

2024-02-15

将行向量和列向量相乘,我期望结果是标量,但它是一个一维、单元素数组:

julia> [1 2 3] * [4; 5; 6]
1-element Array{Int64,1}:
 32

问题1:这背后的理由是什么?

问题 2:将此视为 Julia 的一个怪癖,我想将 1 元素数组转换为标量。使用 [1] 获取第一个元素是一种选择,但可读性不太好。做到这一点的特殊方法是什么?


每个表达式都可以被执行,所以你可以使用

([1 2 3] * [4; 5; 6])[1]

获得第一个(也是唯一的值)。

这有主要的性能原因:类型稳定性。基本上,在编译语言中,如果不进行大量转换,就无法更改类型。 Julia 更聪明一点,但如果您进行大量转换,那么您的代码会变慢,因为编译器必须保留大量“kruft”,以防万一您的类型错误。因此,通过确保类型稳定性,编译器可以提前知道类型是什么,并进行更多优化。这是其中之一表现技巧 http://docs.julialang.org/en/release-0.4/manual/performance-tips/。事实上,由于多重调度和类型稳定性,Julia 很快并达到了 C 速度,因此应该受到尊重。

Array * Array 给出一个数组。为了使其类型稳定,它必须始终给出一个数组。否则,编译器需要在使用输出的每个地方放置额外的代码来检查该变量是否是数组!因此,您应该将 * 与数组一起使用来取出数组。如果你想得到一个标量,简单的答案是使用dot功能:

dot([1;2;3],[4;5;6])

当然,我可以这么说,但最好知道“为什么”,因为类型稳定性对于高性能代码来说是一个非常重要的想法。

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

Julia 中的 1 元素数组到标量 的相关文章

  • 是否可以从 Julia 调用 Python 函数并返回其结果?

    我正在使用 Python 从网络上抓取数据 我想使用这些数据在 Julia 中运行计算 是否可以在 Julia 中调用该函数并返回其结果 或者我最好直接导出到 CSV 并以这种方式加载数据 绝对地 看PyCall jl https gith
  • 在 std::vector> 中迭代 const T&

    我有一堂这样的课 class RPNExpr std vector
  • 如何随机打乱向量中的元素

    我正在尝试完成一项需要发生以下情况的作业 请求所需的元素数量 n 用元素 0 1 2 n 1 填充向量并将其显示到控制台 随机打乱元素并将新的排列显示到控制台 我可以输入向量 但我不知道如何对向量进行洗牌 注意 我不能使用 random s
  • CSR 矩阵 - 矩阵乘法

    我有两个方阵A and B 我必须转换B to CSR Format并确定产品C A B csr C 我在网上找到了很多关于CSR 矩阵 向量乘法 http www mathcs emory edu cheung Courses 561 S
  • 在两个点之间创建一条曲线,每个点都具有标准化向量

    因此 我需要一种写入方法来在两点之间创建一条曲线 每个点都有一个指向任意方向的归一化向量 我一直在尝试设计这样一种方法 但一直无法理解数学 在这里 由于一张图片胜过一千个文字 这就是我所需要的 在图中 矢量垂直于红线 我相信向量需要进行相同
  • 如何在 Julia 中转置字符串数组?

    它适用于数字 但不适用于字符串 The 1 2 有效 但是 a b 没有 为什么 以及如何做到这一点 Why a b 不起作用 因为 运算符实际上计算矩阵的 惰性 伴随 请注意 如文档中所述 adjoint https docs julia
  • 在 C++ 头文件中声明向量

    我在制作的 C 类的头文件中的向量声明时遇到一些问题 我的整个头文件如下所示 ifndef PERSON H define PERSON H include Message h include
  • 将类对象放置在向量中?

    我注意到我可以将一个类放置在一个向量中 这是我的程序 我收到以下错误 out blackjack exe blackjack obj blackjack obj error LNK2019 unresolved external symbo
  • 向量中的可变结构

    我正在尝试创建一个向量来跟踪游戏中的敌人 该向量将保存一堆可变结构 我有一个世界结构 其中有敌人作为其成员 如下所示 pub struct World pub player Creature pub enemies Vec
  • 如何将缺失值插入到 Julia 的数据框中

    df3 10 A missing df3 15 B missing df3 15 C missing 即使 NA 也不起作用 我收到错误 方法错误 不能convertMissings Missing 类型的对象到 Int64 类型的对象 这
  • 如何一步步执行Julia脚本?

    Julia 有什么方法可以在 REPL 中逐步执行现有脚本 同时能够修改 绘制数组吗 以Matlab调试为例 注意 我特别要求 0 4 版本 希望能够实现新的调试系统 您有几个选择 The 调试包 https github com toiv
  • 帮我用光线追踪器解决这个错误

    我不会针对这个问题发布任何代码 因为它需要太多的上下文 但我将从概念上解释我正在做什么 我正在构建一个使用仿射变换的简单光线追踪器 我的意思是 我将来自相机坐标的所有光线与通用形状相交 这些形状都具有关联的仿射变换 并且光线在与场景对象相交
  • 带有 std::vector 的 VBO

    我用 C 和 OpenGL 编写了一个模型加载器 我用过std vectors 来存储我的顶点数据 但现在我想将其传递给glBufferData 但是数据类型却截然不同 我想知道是否有办法可以相互转换std vector至已记录的const
  • R矩阵右除

    在 R 中进行左右矩阵除法的最简洁 最快 数值最稳定 最 R 惯用的方法是什么 我理解左除法inv A B通常是用solve a b 但是怎么样B inv A 确实是最好的计算方法t solve t A t B It is B solve
  • Vector.erase(Iterator) 导致内存访问错误

    我正在尝试对以下内容进行 Z 索引重新排序videoObjects存储在一个vector 该计划旨在确定videoObject这将被放在第一个位置vector 将其删除 然后插入到第一个位置 不幸的是erase 函数总是会导致内存访问错误
  • R 将向量重塑为多列

    假设我在 R 中有一个向量 如下所示 d lt seq 1 100 我想将这个向量重塑为 10x10 矩阵 这样我就可以得到以下数据 1 2 3 10 1 2 3 10 11 12 13 20 21 22 23 30 91 92 93 10
  • Julia:将 1x1 数组从内积转换为数字

    从内积运算而不是 1x1 数组中获取数字的最佳方法是什么 还有比这更好的方法吗 1 2 3 4 5 6 1 如果可能的话 我不会手动进行内积 我会使用dot i e dot 1 2 3 4 5 6 我注意到你实际上并没有向量 相反你有1x3
  • Julia DataFrame 中列的累积和

    在 Python Pandas 中 如果我想用现有列的累积和创建一个新列 我会这样做 df cumulative sum df scores cumsum 在 Julia 中执行此操作的等效方法是什么 您可以使用基本方法cumsum计算向量
  • 如何过滤自定义结构体的向量?

    我正在尝试过滤Vec
  • 使用 PDFBox 在 PDF 上绘制矢量图像

    我想使用 Apache PDFBox 在 PDF 上绘制矢量图像 这是我用来绘制常规图像的代码 PDPage page PDPage document getDocumentCatalog getAllPages get 1 PDPageC

随机推荐

  • 没有 Spring 的 Spring JDBC 模板

    是否有像 Spring JDBC Template 这样的 Java 库 具有相同质量的代码和文档以及类似的数据访问异常层次结构 但不依赖于其他 Spring 模块 根据 core beans context 模块http mvnrepos
  • java程序要求用户输入第二大和最大的数字

    java program that asks user to input a number and print the 1st and 2nd largest numbers import java util Scanner public
  • 类型双关语与联盟成员访问

    按照这个https stackoverflow com a 1812932 1814023 https stackoverflow com a 1812932 1814023 writing one member of union and
  • PHP 将 JSON 数据从 Android 插入 MySQL 数据库

    我有一个 Android 应用程序 它通过 HTTP POST 方法将数据发送到 PHP 脚本 并尝试解析数据以存储到 MySQL 中 Android 应用程序不是我编写的 但我可以访问下面包含的源代码 它发送打包为 JSON 数组的数据
  • 注解:通过注解限制对类的引用

    我认为这是不可能的 但也许我错了 所以我问你 是否可以 如果我定义一个仅接受扩展某些接口或类的类引用的注释 这是可能的 Class
  • 如何模拟第三方React Native NativeModules?

    组件正在导入包含本机模块的库 这是一个人为的例子 import React from react import View from react native import Answers from react native fabric e
  • foreach 中的 Stringbuilder 比 for 和 String.Join() 中的 Stringbuilder 在集合上更糟糕?

    在这里看到一个关于连接字符串的问题 我做了一些测试 并了解到在 foreach 中连接字符串比使用 for 循环和使用数组中的索引要慢 由于对数组进行边界检查 for 循环不应该更慢吗 对 strings i 进行边界检查 foreach
  • 将框架转换为库

    我想在 iOS 应用程序中使用下面链接中找到的框架 我让它在模拟器中工作 但经过一番挖掘后 您似乎无法在设备上使用框架 尤其是通过 App Store 分发时 如果我错了 请纠正我 https github com mirek YAML f
  • 提交后,信息应发送至电子邮件[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我的网页上有一个 查询 选项卡 查询选项卡包含以下信息 Name Email Number Details 单击 提交 按钮后 上述详细信息
  • Unity函数可以立即从3D管道访问2D盒子吗?

    在 Unity 中 假设你有一个 3D 对象 当然 获得 AABB 很简单 Unity 有直接的函数 您可能必须以通常的方式 添加渲染器的所有边界框 没有问题 因此 Unity 确实有一个直接功能 可以在每一帧的内部网格 渲染管道之外立即为
  • 外部 SVG 未加载媒体查询

    我目前使用应用了内联样式的外部 svg 但它不会加载样式 最初我使用 img 来包含外部 svg 如下所示 img src https lw com example svg SVG 文件看起来与此类似
  • 如何将 2 个 fftw_complex 数组相乘

    Heading 你好 我正在尝试将两个 fftw complex 类型的数组相乘 我应该怎么做 这是代码 fftw complex rInF gInF bInF fftw complex rOutF gOutF bOutF for int
  • C 程序测量指令的执行时间

    我需要找到执行一条指令或几条指令所需的时间 并以毫秒为单位打印出来 有人可以分享一下这方面的小代码片段吗 谢谢 我需要使用这个方法来衡量在我的项目中执行一些指令所花费的时间 include
  • Python 中取消计时器

    我正在Python中的定时器类上工作 并为其编写了一个简单的测试代码 我的目的是打印 hello world 消息 10 次 然后在迭代完成后取消计时器 问题是我无法取消计时器 并且代码似乎无限地打印 hello world 下面是我的代码
  • sqlite3_bind_text C++ 字符串的 SQLITE_STATIC 与 SQLITE_TRANSIENT

    我有一个返回 c std string 的方法 然后在将其传递到 sqlite3 bind text 之前将其转换为 c str 我的问题是 这应该使用 SQLITE STATIC 还是 SQLITE TRANSIENT sqlite3 b
  • 我可以根据查询在 SSIS for 循环中设置变量吗?

    我有一个在 SSIS 中执行的 SQL 查询 用于将数据加载到 CSV 文件中 如下所示 SELECT FROM SomeTable WHERE SomeDate BETWEEN 1 Jan 2016 AND 31 Dec 2016 AND
  • 在 GPU 上计算平方欧氏距离矩阵

    Let p是第一组位置的矩阵 其中每行给出特定点的坐标 同样 让q是第二组位置的矩阵 其中每行给出特定点的坐标 那么两两平方欧氏距离的公式为 k i j p i q j p i q j where p i 表示i矩阵第 行p and p 表
  • 如何命名 PowerPoint 幻灯片中的对象?

    所以我知道如何使用 VB 命名文本框或 PowerPoint 中的类似对象 但我想知道是否有一种方法可以通过功能区命名对象 PowerPoint 2007 例如 如果我在幻灯片上添加一个文本框 有没有办法为其指定一个名称 有点像 Acces
  • Java/Kotlin 注释处理器:获取注释字段/属性的类型

    例如我有一堂课 class Foo AnnotatedProp var foo Boolean null 我怎样才能得到类型foo我的自定义注释处理器中的属性 在伪中我期望类似的东西 annotatedElement getStringif
  • Julia 中的 1 元素数组到标量

    将行向量和列向量相乘 我期望结果是标量 但它是一个一维 单元素数组 julia gt 1 2 3 4 5 6 1 element Array Int64 1 32 问题1 这背后的理由是什么 问题 2 将此视为 Julia 的一个怪癖 我想