更新:随机将行添加到矩阵中,但遵循严格的规则

2024-05-21

以下是一个更大的矩阵的一部分:

     0    1.0000    1.0000   77.0000  100.0000         0    0.2500
     0    1.0000    1.0000   72.0000  100.0000    0.2500    0.2500
     0    1.0000    1.0000   69.0000  100.0000    0.5000    0.2500
     0    1.0000    1.0000   48.0000  100.0000    0.7500    0.2500
1.0000    1.0000    1.0000   65.0000  100.0000    1.0000    0.2500
1.0000    1.0000    1.0000   71.0000  100.0000    1.2500    0.2500
1.0000    1.0000    1.0000   62.0000  100.0000    1.5000    0.2500
1.0000    1.0000    1.0000   41.0000  100.0000    1.7500    0.2500
2.0000    1.0000    1.0000   62.0000  100.0000    2.0000    0.2500
2.0000    1.0000    1.0000   67.0000  100.0000    2.2500    0.2500
2.0000    1.0000    1.0000   71.0000  100.0000    2.5000    0.2500
2.0000    1.0000    1.0000   43.0000  100.0000    2.7500    0.2500
3.0000    1.0000    1.0000   71.0000  100.0000    3.0000    0.2500
3.0000    1.0000    1.0000   62.0000  100.0000    3.2500    0.2500
3.0000    1.0000    1.0000   67.0000  100.0000    3.5000    0.2500
3.0000    1.0000    1.0000   47.0000  100.0000    3.7500    0.2500
4.0000    1.0000    1.0000   69.0000  100.0000    4.0000    0.2500
4.0000    1.0000    1.0000   65.0000  100.0000    4.2500    0.2500
4.0000    1.0000    1.0000   60.0000  100.0000    4.5000    0.2500
4.0000    1.0000    1.0000   41.0000  100.0000    4.7500    0.2500
5.0000    1.0000    1.0000   74.0000  100.0000    5.0000    0.2500
5.0000    1.0000    1.0000   71.0000  100.0000    5.2500    0.2500
5.0000    1.0000    1.0000   65.0000  100.0000    5.5000    0.2500
5.0000    1.0000    1.0000   47.0000  100.0000    5.7500    0.2500

等等..矩阵从这一点开始以同样的方式继续:

  • 第 1 列每 4 行以 1 秒的速度递增:0-0-0-0-1-1-1-1-2-2-2-2...n-n-n-n
  • 第 2 列始终为 1
  • 第 3 列始终为 1
  • 第 4 列分为 4 个数字组(例如 [77 72 69 48] 是第一组)
  • 第 5 列始终为 100
  • 第 6 列每行增加 0.25
  • 第 7 列始终为 0.25

在其构造中,矩阵分为 4 行块,每个块都由第一列中的升序数字(0-0-0-0-1-1-1-1-2-2-2-2 等)进行标记。例如,第一个块是:

 0    1.0000    1.0000   77.0000  100.0000         0    0.2500
 0    1.0000    1.0000   72.0000  100.0000    0.2500    0.2500
 0    1.0000    1.0000   69.0000  100.0000    0.5000    0.2500
 0    1.0000    1.0000   48.0000  100.0000    0.7500    0.2500

完整矩阵的长度将在 1500 左右,假设:1512

  • 我想在随机点插入另一行。它应该:

• 第 4 列包含数字 69

• 在第三列中包含数字 2

• 第一列中包含的值与前一行中的值相差 +6(即,如果前一行中的第 1 列的值为“3”,那么我希望当前行中的第 1 列的值为 9)

• 在第6 列中包含一个值,该值在整个矩阵中保持连续上升0.25 的模式,即。 0, 0.25。 0.5、0.75(并且应调整以下行中的值以继续这种模式)

• 第 7 列包含数字 0.25

  • 为了使事情变得更复杂,我实际上想多次执行此操作,而不仅仅是一次 - 也就是说,在整个矩阵中,我想插入许多与此描述匹配的单行。

  • 每个插入点应与下一个插入点间隔原始矩阵 80 到 200 行之间的距离。然而在每一个实例中the number of rows80 到 200 之间的值应该是随机的(即,行的第一次插入可能在原始矩阵上的 84 行之后,而这次的下一次插入可能在第一个行之后的 196 行之后)。

• 至关重要的是,插入点不应与 4 个音符组相交:

即这是一个错误的插入点:

19.0000    1.0000    1.0000   72.0000  100.0000   19.0000    0.2500
19.0000    1.0000    1.0000   67.0000  100.0000   19.2500    0.2500
19.0000    1.0000    1.0000   76.0000  100.0000   19.5000    0.2500
19.0000    1.0000    1.0000   48.0000  100.0000   19.7500    0.2500
20.0000    1.0000    1.0000   65.0000  100.0000   20.0000    0.2500
20.0000    1.0000    1.0000   69.0000  100.0000   20.2500    0.2500
26.0000    1.0000    1.0000   69.0000  100.0000   20.5000    0.2500

但这很好:

19.0000    1.0000    1.0000   72.0000  100.0000   19.0000    0.2500
19.0000    1.0000    1.0000   67.0000  100.0000   19.2500    0.2500
19.0000    1.0000    1.0000   76.0000  100.0000   19.5000    0.2500
19.0000    1.0000    1.0000   48.0000  100.0000   19.7500    0.2500
20.0000    1.0000    1.0000   65.0000  100.0000   20.0000    0.2500
20.0000    1.0000    1.0000   69.0000  100.0000   20.2500    0.2500
20.0000    1.0000    1.0000   60.0000  100.0000   20.5000    0.2500
20.0000    1.0000    1.0000   45.0000  100.0000   20.7500    0.2500
26.0000    1.0000    1.0000   69.0000  100.0000   21.0000    0.2500
  • 对于每个插入的行:插入行后面的第 1 列中的所有值都必须添加 11。

例如:

19.0000    1.0000    1.0000   72.0000  100.0000   19.0000    0.2500
19.0000    1.0000    1.0000   67.0000  100.0000   19.2500    0.2500
19.0000    1.0000    1.0000   76.0000  100.0000   19.5000    0.2500
19.0000    1.0000    1.0000   48.0000  100.0000   19.7500    0.2500
20.0000    1.0000    1.0000   65.0000  100.0000   20.0000    0.2500
20.0000    1.0000    1.0000   69.0000  100.0000   20.2500    0.2500
20.0000    1.0000    1.0000   60.0000  100.0000   20.5000    0.2500
20.0000    1.0000    1.0000   45.0000  100.0000   20.7500    0.2500
26.0000    1.0000    1.0000   69.0000  100.0000   21.0000    0.2500
32.0000    1.0000    1.0000   64.0000  100.0000   21.2500    0.2500
32.0000    1.0000    1.0000   67.0000  100.0000   21.5000    0.2500
32.0000    1.0000    1.0000   60.0000  100.0000   21.7500    0.2500
32.0000    1.0000    1.0000   36.0000  100.0000   22.0000    0.2500
33.0000    1.0000    1.0000   72.0000  100.0000   22.2500    0.2500
33.0000    1.0000    1.0000   67.0000  100.0000   22.5000    0.2500
33.0000    1.0000    1.0000   64.0000  100.0000   22.7500    0.2500
33.0000    1.0000    1.0000   43.0000  100.0000   23.0000    0.2500
  • 最后..对于插入行和下一个插入行之间的每个矩阵块(还包括矩阵开头和第一个插入行之间的块,以及最后插入行和矩阵末尾之间的块)我想将 1 到 12 之间的随机数添加到第 4 列中的原始值。(作为示例(示例中的“2”、“9”和“5”是“1 到 12 之间的随机数”) 'inserted_row - value+ 2 - 值+2 - 值+2 - 值+2.... next_inserted_row - 值+9 - 值+9 - 值+9... next_inserted_row - 值+5..'等)

有人能帮忙吗?


据我所知,这应该可以满足您的要求。原始矩阵是M:

insertRange = [80 200];   %// number of lines to skip before inserting
chunkStart = 0;

while chunkStart < size(M,1)
   chunkEnd = chunkStart + randi(insertRange/4) * 4;
   %// add random value to column 4
   addedValue = randi(12);
   lastRow = min(chunkEnd,size(M,1));
   M(chunkStart+1:lastRow,4) = M(chunkStart+1:lastRow,4) + addedValue;
   if chunkEnd < size(M,1)
      %// we haven't reached the end; insert new row after chunkEnd
      newRow = M(chunkEnd,:);
      newRow(1) = newRow(1) + 6;
      newRow(3) = 2.0;
      newRow(4) = 69.0;
      newRow(6) = newRow(6) + 0.25;
      %// now adjust remaining rows (> chunkEnd)
      M(chunkEnd+1:end,1) = M(chunkEnd+1:end,1) + 11.0;
      M(chunkEnd+1:end,6) = M(chunkEnd+1:end,6) + 0.25;
      M = [M(1:chunkEnd,:); newRow; M(chunkEnd+1:end, :)];
      chunkEnd = chunkEnd+1;
   end
   chunkStart = chunkEnd;
end

以下是使用较小数据集和 insertRange 的示例运行。

>> OriginalM(36:46,:)
ans =

     8.00000     1.00000     1.00000    56.00000   100.00000     8.75000     0.25000
     9.00000     1.00000     1.00000    68.00000   100.00000     9.00000     0.25000
     9.00000     1.00000     1.00000    76.00000   100.00000     9.25000     0.25000
     9.00000     1.00000     1.00000    72.00000   100.00000     9.50000     0.25000
     9.00000     1.00000     1.00000    48.00000   100.00000     9.75000     0.25000
    10.00000     1.00000     1.00000    67.00000   100.00000    10.00000     0.25000
    10.00000     1.00000     1.00000    71.00000   100.00000    10.25000     0.25000
    10.00000     1.00000     1.00000    66.00000   100.00000    10.50000     0.25000
    10.00000     1.00000     1.00000    47.00000   100.00000    10.75000     0.25000
    11.00000     1.00000     1.00000    60.00000   100.00000    11.00000     0.25000
    11.00000     1.00000     1.00000    72.00000   100.00000    11.25000     0.25000

以及在之后插入新行的输出9 group:

>> M(36:46,:)
ans =

     8.00000     1.00000     1.00000    68.00000   100.00000     8.75000     0.25000
     9.00000     1.00000     1.00000    80.00000   100.00000     9.00000     0.25000
     9.00000     1.00000     1.00000    88.00000   100.00000     9.25000     0.25000
     9.00000     1.00000     1.00000    84.00000   100.00000     9.50000     0.25000
     9.00000     1.00000     1.00000    60.00000   100.00000     9.75000     0.25000
    15.00000     1.00000     2.00000    69.00000   100.00000    10.00000     0.25000
    21.00000     1.00000     1.00000    73.00000   100.00000    10.25000     0.25000
    21.00000     1.00000     1.00000    77.00000   100.00000    10.50000     0.25000
    21.00000     1.00000     1.00000    72.00000   100.00000    10.75000     0.25000
    21.00000     1.00000     1.00000    53.00000   100.00000    11.00000     0.25000
    22.00000     1.00000     1.00000    66.00000   100.00000    11.25000     0.25000
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更新:随机将行添加到矩阵中,但遵循严格的规则 的相关文章

  • Matlab PARFOR 循环可以通过编程方式打开/关闭吗?

    有一个关于 MATLAB 中 parfor 的简单问题 我想在程序中设置一个标志 以便在 parfor 和常规 for 循环之间进行更改 基本上 我需要此功能 以便我的代码的某些部分可以在 调试 模式下更新图形 然后当关闭该标志时 使用 p
  • 按元素出现的频率对数组元素进行排序

    是否可以在 matlab octave 中使用sort函数根据元素的相对频率对数组进行排序 例如数组 m 4 4 4 10 10 10 4 4 5 应该产生这个数组 5 10 10 10 4 4 4 4 4 5是出现频率较低的元素 位于顶部
  • 扩展 MATLAB 函数名称的最大长度

    我编写了一个 MATLAB 程序 可以动态创建自定义 MATLAB 函数 并使用以下命令在其他 MATLAB 实例中启动它们unix命令 我使用这个程序来自动化 fMRI 神经影像分析 使用 SPM8 for MATLAB 一切正常 但是
  • 两个 y 轴与相同的 x 轴[重复]

    这个问题在这里已经有答案了 可能的重复 在单个图中绘制 4 条曲线 具有 3 个 y 轴 https stackoverflow com questions 1719048 plotting 4 curves in a single plo
  • 如何在 Matlab 中使用谷歌翻译?

    我正在编写一个程序 使用 Matlab 列出电影字幕文件中的所有唯一单词 现在我有一个独特的单词列表 我想将其翻译成我的语言并在观看电影之前了解其含义 有谁知道如何在 Matlab 中使用 Google Translate 以便完成我的脚本
  • 为什么旋转 3D 点云后顶点法线会翻转?

    我有两个人脸 3D 点云样本 蓝色点云表示目标面 红色点云表示模板 下图显示目标面和模板面在不同方向上对齐 目标面大致沿 x 轴 模板面大致沿 y 轴 Figure 1 The region around the nose is displ
  • 如何找到在matlab中重复的矩阵的每一行的索引?

    我想找到矩阵中所有有重复项的行的索引 例如 A 1 2 3 4 1 2 3 4 2 3 4 5 1 2 3 4 6 5 4 3 要返回的向量将是 1 2 4 很多类似的问题建议使用unique函数 我已经尝试过 但我能得到的最接近我想要的功
  • Matlab没有优化以下内容吗?

    我有一个很长的向量 1xrv 和一个很长的向量w1xs 和一个矩阵Arxs 它是稀疏的 但维度非常大 我期望 Matlab 对以下内容进行优化 这样我就不会遇到内存问题 A v w 但看起来 Matlab 实际上是在尝试生成完整的v w矩阵
  • 有没有比“[”更快的方法来对稀疏矩阵进行子集化?

    我是 seqMeta 包的维护者 正在寻找如何加速将大矩阵多次分割成小块的瓶颈的想法 背景 seqMeta 包用于分析遗传数据 所以你有一组受试者 n subject 和一些遗传标记 n snps 这导致 n subject x n snp
  • 如何在没有安装Visual Studio的另一台机器上使用Visual Studio生成的dll?

    我已经在 Visual Studio 2012 中生成了动态库 我想在另一台机器上使用该库 但我不想在远程机器上安装 Visual Studio 我有 mex 库和 dll 我想运行一个使用这两个库的脚本 当我运行脚本时 出现以下错误 缺少
  • 有没有办法在matlab中进行隐式微分

    我经常使用 matlab 来帮助我解决数学问题 现在我正在寻找一种在 matlab 中进行隐式微分的方法 例如 我想区分y 3 sin x cos y exp x 0关于dy dx 我知道如何使用数学方法通常做到这一点 但我一直在努力寻找使
  • 在 Matlab 中将 datenum 转换为 datetime 的最快方法

    我在 Matlab 中将 datenum 转换为 datetime 时遇到问题 Given dnum floor now floor now 1 我尝试了以下方法 datenum dnum 但这没有用 我发现有效的方法是 datetime
  • 括号中的波形符字符

    在 MATLAB 中 以下代码执行什么操作 m func returning matrix 波浪号运算符 的作用是什么 在 Matlab 中 这意味着不要将函数中相应的输出参数分配到赋值的右侧 因此 如果func returning mat
  • matlab中类库的全局变量

    我有一些matlab声明的类 我如何声明所有类中都可见的常量 例如 这些常量可以是在所有类的方法中使用的物理常量 首先想到的是使用全局变量 还有更好的办法吗 最好在单独的文件中声明这些常量 包含常量的类是执行此操作的一种很好的干净方法 请参
  • 当行大小大于向量宽度时 SIMD 转置

    你可以找到很多good https stackoverflow com a 25625919 149138 answers https stackoverflow com a 29587984 149138用于转置一个矩阵 该矩阵落在nat
  • 检测植物图片中的所有分支

    我想知道有什么可以检测下图中的所有绿色树枝 目前我开始应用 Frangi 过滤器 options struct FrangiScaleRange 5 5 FrangiScaleRatio 1 FrangiBetaOne 1 FrangiBe
  • 如何找到平面和 3d 矩阵之间的交平面

    如果我有一堆图像并且尺寸如下 size M 256 256 124 我有 3 个点 它们的坐标是 coor a 100 100 124 coor b 256 156 0 coor c 156 256 0 如何创建 M 与这 3 个点定义的平
  • 如何使用 MATLAB 的 substruct 函数创建表示使用“end”的引用的结构?

    我想使用substruct http www mathworks com help matlab ref substruct html函数创建一个结构体以供使用subsref 目的是使用索引字符串subsref而不是通常的 符号 因为我正在
  • 矩阵循环移位

    有谁知道对矩阵进行右循环移位的有效方法 顺便说一句 矩阵是二元矩阵 但求解非二元矩阵的方法也很好 现在 我正在考虑为矩阵的行实现一个圆形数组 并在需要移位操作时更新每一行 我正在考虑的另一种方法是实现一个指向由向量表示的列 矩阵 的指针向量
  • 如何更改Plotyy第二轴的颜色和字体大小?

    我使用 MATLAB 的plotyy 函数绘制了两条曲线 AX H1 H2 plotyy voltage span amplitude voltage span Ca SR The problem is that I cannot chan

随机推荐

  • MongoDB 日志文件和 oplog 有什么不同?

    我最近开始使用 Mongodb 并尝试探索副本集和崩溃恢复 我读过它就像日志文件写入头重做日志文件一样 oplog 文件是每个写入活动都将被写入的文件 这两个有什么区别 我们在主站和从站上都有操作日志吗 请发布任何可以阐明该领域的网络链接
  • Drawable 已属于另一个所有者,但未公开恒定状态

    错误 无效的可绘制对象添加到 LayerDrawable 中 Drawable 已经属于另一个所有者 但不公开恒定状态 我今天突然注意到这个错误 我不确定是否是因为我刚刚将测试设备更新到Android 8 0 错误消息清楚地表明在浮动操作按
  • spring-security-kerberos 无法读取密钥表?

    我正在努力追随本教程适用于 spring security kerberos http blog springsource com 2009 09 28 spring security kerberos 我有一个密钥表 其中有一个主体 kt
  • 如何在 Vagrant 中使用 VirtualBox 创建具有两个 CPU 的虚拟机?

    在 Windows 7 64 位上尝试启动 VM Ubuntu 32 位 尽管添加了以下内容 但我仍无法让我的虚拟机显示两个核心modify vm我的 Vagrantfile 中的命令 我的 Vagrant 版本是 1 2 2 mode r
  • XP及PHP MYSQL 练级系统

    我已经查看了所有提出的问题和答案 但我似乎找不到最适合我的答案 我想做的是开发一个系统 当用户达到一定的 XP 限制时 系统会进入下一个级别 它显示了下一个 XP 之前需要多少 XP So lvl1 0 gt lvl2 256 gt lvl
  • Emberjs 将多个控制器加载到一个控制器中

    SCENARIO我目前有一个IndexRoute 我想将另外 3 个控制器加载到其中 另外 3 个控制器称为Sports News Business 我阅读了 embersjs 文档 它指出您需要实现renderTemplate钩入Inde
  • Next.js 嵌套动态文件夹路由

    Update 由于 category slug index js 导致此错误getServerSideProps 我尝试做index js在产品文件夹下 它可以工作 这意味着它可以与 category slug 一起使用getServerS
  • Gerrit 和 Active Directory

    我正在尝试设置 Gerrit 以使用我们的公司 Active Directory 进行身份验证 我知道很多人都设法让它发挥作用 但它对我来说不起作用 如果我运行一个ldapsearch命令如下我得到了正确的结果 所以我知道我的搜索字符串是正
  • 如何解决本机反应的权限被拒绝错误?

    UPDATE 在终端中我看到这个文件有 rw r r 我需要运行什么命令才能将其更改为正确的权限 我正在尝试跑步 react native run ios 我不断收到如下错误 return binding open pathModule m
  • SpriteKit 碰撞检测中 SKSpriteNode 之间的间隙

    我已经尝试解决这个问题很长一段时间了 我有一个具有简单平台物理原理的游戏 其中玩家跌倒在一个方块上 这可以阻止他跌倒 这是可行的 但是玩家停止的位置和实际对象 精灵节点的位置之间存在明显的差距 这是一个屏幕截图 它应该是不言自明的 clas
  • 如何使用 Javascript 访问 iframe 元素?

    我有一个网页 其中 iframe 中有一个文本区域 我需要从其子页面 JavaScript 中读取此文本区域的值 目前通过使用window parent getelementbyID value在 JavaScript 中 我能够获取父页面
  • 如何在不使用 .toPandas() hack 的情况下提取 PySpark 中对长度敏感的特征?

    我是 PySpark 的新手 我想翻译特征提取 FE 将 pythonic 部分脚本放入 PySpark 中 首先 我有所谓的 Spark 数据框sdf包括 2 列 A 和 B 下面是示例 data A B https example1 o
  • 部署的 Firebase 函数无法对外部 API 执行 HTTP GET? [复制]

    这个问题在这里已经有答案了 我正在尝试创建我的第一个 Google Home Action 其功能与我的 Amazon Alexa Skill 相同 此操作的工作方式是 您执行一个意图 然后调用我的代码中的一个函数 调用该函数时 它会向外部
  • 如何在node.js中的一定时间后强制解决承诺? [复制]

    这个问题在这里已经有答案了 我正在尝试从其 url 下载大量图像 然后在 Node js 中创建一个 PDF 文件 我正在使用图片下载器 https www npmjs com package image downloader模块下载承诺链
  • 菜单作为水平无序列表或表格?

    我有一个无序列表 水平显示为页面的顶部菜单栏 我已经让它显示得相对较好 尽管我一直在调整 IE6 和 IE7 的间距 因为它无法正常显示 令人震惊 无论哪种情况 使用表格来显示菜单还是使用一些CSS hack 我找不到解决方法 会更好吗 显
  • 理想的 PHP 会话大小?

    我有一个 PHP 表单 抵押应用程序 大约有 400 个字段 该网站的流量会很低 对于进入 MySQL 数据库的 400 个字段 理想的会话大小是多少 In php ini我要设置什么 我应该设置我缺少的任何内容吗 会话的大小没有限制 但
  • 如何在 Laravel 5 中对合并集合进行分页?

    我正在创建一个包含两种类型的对象的流 BluePerson 和 RedPerson 为了创建流 我获取所有这两个对象 然后将它们合并到一个集合中 这样做之后 我需要对它们进行分页 但是分页似乎是针对雄辩的模型和数据库查询 而不是集合 我见过
  • Android MediaPlayer:视频查找导致 onSeekComplete 被调用两次

    我在这里做错了什么 我设置了 onSeekCompleteListener 我准备了一部电影 我进行了一次搜索 立即调用 onSeekComplete 然后延迟一段时间后我播放电影 然后再次调用onSeekComplete 怎么又来了 这是
  • 使用 AES 解密时输入数据不是完整的块

    我正在尝试加密来自 oracle 的数据 然后使用 C 解密它 到目前为止 我设法编写了一个在 C 和 Oracle 中加密数据的代码 并且得到了匹配的结果 我试图用 C 解密数据 但收到错误 输入数据不是一个完整的块 甲骨文加密 SELE
  • 更新:随机将行添加到矩阵中,但遵循严格的规则

    以下是一个更大的矩阵的一部分 0 1 0000 1 0000 77 0000 100 0000 0 0 2500 0 1 0000 1 0000 72 0000 100 0000 0 2500 0 2500 0 1 0000 1 0000