MATLAB 中冒号运算的组合

2023-12-30

我有一个关于 MATLAB 中冒号运算符和向量扩展的问题。我的问题是理解以下代码行如何扩展,以便能够将其用于其他序列。 MATLAB 代码行是:

a(1:2:5) = 1:-4:-7 

注意a扩展前未定义。这返回向量

a = 1 0 3 0 -7

我知道冒号运算符如何使用{start}:{step}:{stop},我的问题是理解如何以及为什么结合a(1:2:5)and 1:-4:-7返回由五个元素组成的向量,其中位置为零2 and 5?


每当 Matlab 检测到您正在查找某个元素时outside矩阵/数组的当前边界,它将自动用零填充缺失的元素:

>> clear b; b(10) = 5 
b =
    0     0     0     0     0     0     0     0     0     5

这个功能既很有用, and 非常危险。它很有用,因为可以非常容易地进行事实声明,例如您自己的案例。您可以通过发出类似的命令来创建一整套定制类

myClassArray(500) = myClass(1, 2);

这比类似的东西好得多

% cannot pre-allocate (zeros() or ones() give double/uint8/..., not myClass)
for ii = 1:499
     myClassArray(ii) = myClass; % so, growing array
end
myClassArray(500) = myClass(1,2);

但是,不断增长的数组可能很难发现:

a = zeros(10,1);
for ii = 1:10
    a(ii+1) = rand;
end

这会使性能大幅下降。此外,当您将 Matlab 中原型化的代码转换为 C++ 等静态类型语言时,复制此代码将导致缓冲区溢出,从而导致段错误。

现在,回到你的案例:

clear a;   a(1:2:5) = 1:-4:-7 

The 1:2:5将扩展到数组[1 3 5],以及1:-4:-7将给出值[1 -3 -7]。由于变量a尚不存在,Matlab 将创建一个新的并填充元素[1 3 5]与价值观[1 -3 -7]。为了初始化变量而跳过的索引a(即,[2 4])然后将自动初始化为零。

如果你熟悉Python,它有点像为多个变量分配多个值的语法

x,y = 1,2

但在您的 Matlab 案例中,这些不同的变量是不存在数组的索引,这需要“用某些东西填充孔”以使其成为有效、一致的数组。

这是否让事情变得清楚了?

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

MATLAB 中冒号运算的组合 的相关文章

  • Blob 的簇生长

    考虑以下来自 Mathworks 的图像 我已经用标签标记了斑点 L num bwlabel I 如何迭代连接所有斑点 即从一个斑点开始 找到离它最近的一个 考虑最左边的两个斑点 可以从一个斑点的许多点绘制许多条线来连接到另一个斑点blob
  • matlab中优先级队列的实现方法

    matlab中有没有提供minpriorityqueue功能的库 import java util PriorityQueue import java util public class MyQueue Comparator
  • C 函数声明中的无类型参数

    最近我一直在查看 Steven Skiena 的在线资源中的一些 C 示例代码 算法设计手册 http www cs sunysb edu skiena algorist book programs 并且对他的一些函数调用的语法感到困惑 诚
  • 零件和跨度:有什么理由这“不应该”起作用吗?

    这是一个设计问题 而不是现有功能的问题 我想使用 1 2 3 4 5 1 3 2 5 我预计 1 2 3 2 3 4 5 但它是无效的 During evaluation of In 1 Part pspec Part specificat
  • 带数组的双美元变量

    我正在尝试使用双美元语法访问数组的第一项 但它无法按照我想要的方式工作
  • jquery 隐藏简单的 javascript 错误

    我在 chrome 和 firefox 中使用 jQuery 和 flot 当我编写代码时 我发现执行在一些愚蠢的事情上会默默失败 例如访问不存在的哈希结构等 感觉 jQuery 中有一些 try catch 逻辑 让我看不到任何错误 有没
  • Python 中 Matlab 'fscanf' 的等价物是什么?

    Matlab函数fscanf 似乎很强大 python 或numpy 中是否有相同的等效项 具体来说 我想从文件中读取矩阵 但我不想迭代每一行来读取矩阵 类似的东西 来自 matlab 用于读取 2D 1000x1000 矩阵 matrix
  • 如何通过在切片上查找来从切片复制到数组

    我正在编写一个库来处理二进制格式 我有一个带有数组变量的结构 我想保留它以用于文档目的 我还需要从输入字节片中查找和判断 一些伪代码 type foo struct boo 5 byte coo 3 byte func main input
  • 如何从列中创建对称矩阵?

    例如 我想转动以下列 90 175 600 650 655 660 代入矩阵 90 175 600 650 655 660 175 600 650 655 660 655 600 650 655 660 655 650 650 655 66
  • 用于定义数字的数字常量之前应有非限定 ID

    我是 C 新手 所以我不知道 phidget 代码示例中的此错误意味着什么 Main cpp 8 16 错误 数字常量之前预期有不合格的 id verander de volgende informatie naar de informat
  • 如何调整x轴和y轴的大小

    如何调整 x 轴和 y 轴的大小 我想要什么 更具体 3900 60 30 0 60 120 180 3600 我做了什么 a 0 0 1 10000 plot a 我应该写什么才能按预期调整 x 和 y 轴的大小 EDIT 我不想 390
  • Python 中的 eig(a,b) 给出错误“需要 1 个位置参数,但给出了 2 个”

    根据https docs scipy org doc numpy 1 15 0 user numpy for matlab users html https docs scipy org doc numpy 1 15 0 user nump
  • OpenCV功能类似于matlab的“查找”

    我正在寻找 openCV 中的一个函数来帮助我制作图像蒙版 例如在 MATLAB 中 B A or B 零 大小 A B A 10 c 有些功能可以让你通过mask向他们提出论据 按照您描述的方式创建面具 我认为您正在追求Cmp 或 Cmp
  • MATLAB:MEX 矩阵除法给出的结果与 m 文件不同

    我使用 MATLAB 的编码器工具创建了矩阵指数函数的 MEX 版本 以在另一组函数中使用 问题是 MEX 版本给出的结果与原始 m 文件不同 经过调试 我认为这是因为MEX文件和m文件没有做相同的矩阵除法 或者 MEX 文件首先就有问题
  • numpy 向量化而不是 for 循环

    我用 Python 写了一些代码 运行良好 但速度很慢 我认为是由于 for 循环 我希望可以使用 numpy 命令加速以下操作 让我定义目标 假设我有一个 2D numpy 数组all CMs尺寸row x col 例如考虑一个6x11数
  • Go 指针 - 通过指针将值附加到切片

    我有一个 struct ProductData 及其实例 p 它有一个切片属性 type ProductInfo struct TopAttributes map string interface 我想设置 TopAttributes 如下
  • Numpy:生成二维高斯 pdf 总和作为数组

    我正在尝试生成一个 600 x 600 numpy 数组 其中包含 10 个类似高斯数组的总和 每个数组都有一个随机生成的中心 我尝试使用高斯滤波器来生成各个类似高斯的数组 然后将它们相加 但我确信有一种矢量化的方法可以解决这个问题 即使n
  • 获取 Nd4j 数组的任意切片

    我想以与使用 Numpy 相同的方式在任意大小的 Nd4j 中执行切片 a numpy arange 100 a 25 50 nd4j slice 方法仅接受维度和索引参数 而不接受长度 我怎样才能实现这个目标 我知道这是一个老问题 但我在
  • 在每次迭代中使用 for 循环的索引命名图像

    我正在使用 MATLAB 进行图像处理项目 我使用 for 循环在每次循环迭代时生成某种图像数据 图像大小不同 我的问题是如何阻止它在下一次迭代中覆盖图像 Img i j data 理想情况下我希望它有 Img 1 data for 1st
  • Matlab 中是否有相当于 R 的 dput() 的函数?

    Matlab 中是否有相当于 R 的 dput 的函数 dput 将 R 对象的 ASCII 文本表示形式写入文件或连接 UPDATE 1 添加了递归和对单元格的支持 UPDATE 2 添加了对结构的支持 UPDATE 3 增加了对逻辑 整

随机推荐

  • Java获取html文件

    复制 如何用 Java 以编程方式下载网页 https stackoverflow com questions 238547 how do you programmatically download a webpage in java 如何
  • 如何将 IPython 笔记本转换为 PDF 和 HTML?

    我想转换我的 ipython 笔记本来打印它们 或者只是以 html 格式发送它们 我注意到已经有一个工具可以做到这一点 NB转换 https github com ipython nbconvert 虽然我已经下载了它 但我不知道如何使用
  • 在 Firebase 托管上提供 gzip 压缩文件

    我对使用 Firebase 托管提供 gzipped html css js 文件感兴趣 我尝试在 firebase json 中设置 Content Encoding 标头 但在部署时出错 据称 您可以设置的唯一标头包括 Cache Co
  • 为什么我要 std::move std::shared_ptr?

    我一直在寻找铿锵源码 https clang llvm org doxygen CompilerInstance 8cpp source html l00069我发现了这个片段 void CompilerInstance setInvoca
  • 将汇编 NASM 代码链接到 GCC

    我在编译汇编代码 nasm 时遇到问题 在 Linux elf32 上 使用 g 编译后它不会失败 但是当我尝试使用 i686 w64 mingw32 g 对于 Win32 构建它时 它失败了 我的 build sh 脚本 bin bash
  • 组合两个具有重叠范围的数据框并计算按类别分组的重叠

    建立在这个答案 https stackoverflow com questions 58570888 combine two dataframes based on ranges which may partially overlap us
  • 为什么方括号内的点不匹配任何字符?

    为什么这个 Java正则表达式与我的不匹配 foo 文本 同时 完美匹配 已测试here http www regexplanet com advanced java index html 相当于逃避 点 字符 即 一旦角色出现在字符类 h
  • if 语句摆脱: if 中的错误:参数长度为零

    The idea 根据selectizeInput 输入 我想显示数据框中的一行数据 然而 某些变量只有在其值不存在时才会显示 FALSE selectizeInput 包括一个占位符提示 这是非常理想的 问题 我开发的代码实际上可以工作
  • 无法登录oracle系统账户

    我最近安装了oracle 12c 无法访问系统本地生成的连接 Ora 01017 错误 尽管我知道它是正确的 因为我更改了密码 无论如何 stackoverflow 上的其他人将我重定向到此https iwikte wordpress co
  • 用于查找 git 分支上创建的所有 TODO 注释的脚本?

    我有一个已经变得相当大的功能分支 我们的代码中有相当多挥之不去的 TODO 注释 但我想找到在尚未合并到 master 的提交上添加到代码中的所有 TODO 尚未删除 我该怎么办呢 您可以简单地将您的分支与 master 进行比较 并在输出
  • 在命令行 Dart 应用程序中清除终端屏幕

    这个不起作用 在 Windows 的 Cmd Box 中 import dart io void main print Hello World Process start cls runInShell true then process s
  • Dart 中的 patch 关键字有什么作用?

    有人可以解释一下 patch 关键字的作用吗 例如 在math patch dart I see patch num pow num x num exponent gt MathNatives pow x exponent patch do
  • 向 ggplot 条形图添加标签

    我想做一个黑色轮廓的条形图 条形内有百分比 这可以从 qplot 中实现吗 我得到了显示的百分比 但它们与特定的条形不一致 软件包 ggplot2 重塑 x lt data frame filename c file1 file2 file
  • Symfony2 JSON 响应返回奇怪的 UTF 字符

    这是我的控制器方法 public function sendjsonAction message this gt getDoctrine gt getRepository AcmeStoreBundle Message gt findAll
  • 不明确的隐式值是我们想让错误存在于编译时的唯一方法吗

    trait Foo trait Bar extends Foo def doStuff T lt Foo x T implicit ev T Foo x doStuff new Foo ambiguous implicit value do
  • 如何在 IE 中翻转网站? (4月1日)

    我们正在办公室进行 4 月 1 日的恶作剧 并希望明天将我们的公司网站翻转几个小时 我的补丁在任何地方都有效 但在 IE 中无效 任何人都可以帮忙吗 尝试这个 http msdn microsoft com en us library ms
  • 非负集减法

    这适用于任何语言 但我会在节点中实现它 我有一组整数 以及一个需要从该组总和中减去的值 4 5 6 7 8 25 如果我们均匀地减去每个数字 我们会得到 1 0 1 2 3 但是 我不希望任何小于 0 的数字 因此 如果我编写一个算法来执行
  • Rails 生成 has_many 关联

    有没有办法使用以下方法为列生成 has many 关联Rails generate scaffold控制台中的命令 I know belongs to可用并且有用例references但不确定has many 没有用于 a 的列has ma
  • 粘页脚失败

    我正在尝试使页脚正确 但遇到问题 我能够将页脚保持在页面底部 但很快意识到当窗口变小时 它最终会覆盖内容 我可以通过取消position absolute来解决这个问题 但是如果我这样做 页脚将不再停留在页面底部 我已经尝试了很多不同的方法
  • MATLAB 中冒号运算的组合

    我有一个关于 MATLAB 中冒号运算符和向量扩展的问题 我的问题是理解以下代码行如何扩展 以便能够将其用于其他序列 MATLAB 代码行是 a 1 2 5 1 4 7 注意a扩展前未定义 这返回向量 a 1 0 3 0 7 我知道冒号运算