- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我无法理解问题中的“a 的行索引”指的是什么……您能举个例子吗?为什么
sum = sum + a[(row * a_cols) + k] * b[k * b_cols + col]?
谢谢!
double dotProduct(double a[], const unsigned a_rows, const unsigned a_cols,
/* a is a matrix with a_rows rows and a_cols columns */
double b[], const unsigned b_cols,
/* b is also a matrix. It has a_cols rows and b_cols columns */
unsigned row, // an **index of a row of a**
unsigned col) // an index of a column of b
{
int k; // loop variable
double sum = 0.0; // the result of the dot product is stored here
k = 0;
while (k < a_cols) { // recall: a_cols == b_rows
/* we need to multiply a[row, k] and b[k, col] and add that to sum */
sum = sum + a[(row * a_cols) + k] * b[k * b_cols + col];
/* recall a[i,j] is stored at a[(i * a_cols) + j]
and b[i,j] is stored at b[(i * b_cols) + j] */
k += 1;
}
return sum;
}
最佳答案
编辑我的不好,忘了我的第一个答案,我误解了问题...
回答:dotProduct() 方法的第 5 个参数,名为 row,作为 a 的行索引 给出。
这意味着它是一个 0 到 (a__rows -1) 的值,用于指定“矩阵”a 的一个特定行。 (实际上它可能是 1 到 a__rows 的值。这只是一个约定问题;数学人员倾向于喜欢“基于 1”的索引,程序员更喜欢基于 0 的值。请参阅 Adam Liss 对此主题的有趣评论在备注中)
由于矩阵 a 是在一维数组中实现的,因此您需要使用简单的算术来寻址 a 中由 row 索引的行上的所有单元格。
“公式”是按顺序访问所有这些单元格是
for (int c = 0; c < a_cols; c++)
{
A_Cell_Value = a[row * a_cols + c];
}
将应用类似的公式来扫描 b 的给定 列 的单元格。然而在这种情况下,索引 col 将用作偏移量,而 b_cols 将用作因子。具体来说,
// not an error this is a_cols which also corresponds to the number of rows of
// matrix b, so that these matrices would be compatible for multiplication
for (int r = 0; r < a_cols; r++)
{
B_Cell_Value = b[(r * b_cols) + col];
}
我认为以上内容为您提供了遍历行或列单元格的必要理解。我让您将所有这些放在您的应用程序中。
一些提示: - 做一些参数值检查。这将避免在这些矩阵上出现越界错误。 - 在您的程序中引入抽象的一个好方法是引入一个函数,该函数从矩阵维度和两个行和列索引返回矩阵的单个单元格的值。例如:
// returns the matrix's cell value at RowIdx and colIdx
double GetCell(double matrix[], int nbOfRow, int nbOfColumns,
int rowIdx, int colIdx)
{
if (rowIdx < 0 || rowIdx >= nbOfRows ||
colIdx <0 || colIdx >= nbOfColumns
)
{
printf("bad arguments in GetCell()\n");
return 0; // print
}
return matrix[rowIdx * nbOfColumns + colIdx];
}
以这种方式,您将抽象化(=隐藏相关细节)这些线性存储的丑陋矩阵,并能够在点积公式级别根据行和列索引来解决它们。
换句话说,GetCell() 函数担心根据其对矩阵实现结构的了解找到正确的单元格。它不必知道此单元格值将用于什么。 DotProduct 计算逻辑担心 A 的哪个系列的单元格与 B 的哪个系列的单元格相乘,根据它们的行/列(i/j 等)“协调”“自然地”解决这些单元格中的每一个,它不会' 需要知道数据是如何有效地存储在矩阵实现中的。
关于c - 指针,内存分配 : index of rows in Matrix Multiplication (C Programming),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1563855/
首先我要说的是,我主要是一名 iOS 开发人员,最近才开始探索全栈开发的惊心动魄的冒险。我是 PHP 和 MySQL 的新手。话虽如此,我有一个问题,我希望需要一个直接的解决方案。 我正在为一个拥有预
我的表单上有 GridEx 对象并且... 我想用 for...next 循环在其中添加一些项目。实际上我找不到任何方法来添加带有自定义数据的新行。 我想在那个 GridEx 对象中选择一个特定的行。
我有以下数据框 df1 = DataFrame([['OBJ1', 10, 'BX', 'pool1', 'OBJ2'],['OBJ2', 0, '', '', 'OBJ1'],['OBJ3', 1
所以我有以下成员(member)历史表 User_ID | Start date | End Date | Type(0-7) | ---------------------------
我不擅长sql。我查看了 stackoverflow,但似乎对我没有任何用处。所以,我正在寻求帮助。是否可以根据行中的第一个字段将 2 行合并为 1 行。 我在 mysql 中执行此操作。我将展示示例
我了解 flex sm、md、lg 列的概念,但不了解应用于行的概念。弹性行有什么作用? sm、md、lg 尺寸应用于弹性行时意味着什么? 最佳答案 简答 - .row只是网格的容器 col .然而,
我遇到麻烦的地方 我相信我需要使用 COUNT;但是,我不知道如何将一行与同一列中的每一行进行比较,然后计算有多少行比相应行少/便宜。提前谢谢您! 这是我试图解决的官方问题: “使用示例架构,编写一条
我有以下 3 个相关表 Schools Departments Classes --------------- ------------------ --
我有代码: g, g_err = data[:, 4:6].T 我不知道[:, 4:6]的含义 尤其是第一个: .T 表示转置吗? 最佳答案 您有一个名为 data 的二维矩阵,您的代码从第一维获取所
我在行单击上附加了一个事件,在行内的复选框更改上附加了一个事件。 如何防止首先触发行单击? $(document).on('click', 'table tr', function() { con
我有一个场景,我需要连接两个 SQL 表并且正在为如何做而苦恼。假设在表 A 中我有这个: ColA ColB ColC ColD 45 55 17 45 45
我用谷歌表格记录我们俱乐部的出席率。该表格链接到另一个谷歌表格,因此可以自动创建一个名字列表,并按字母顺序排序。在这张表格中,我还根据我们所做的活动,在人的名字旁边手动输入点数。。问题是,由于姓名列表
这个问题在这里已经有了答案: What is a NullPointerException, and how do I fix it? (12 个回答) 5年前关闭。 编辑:我正在使用此代码读取 Ex
我是 R 的初学者。我希望你能帮助我解决我的问题。我的数据集中的文件名包含大量信息。我必须提取这些信息来创建单独的变量。 首先我使用 splits <- t(as.data.frame(strspli
假设我有一个 CSR 格式的矩阵,将一行(或多行)设置为零的最有效方法是什么? 下面的代码运行得很慢: A = A.tolil() A[indices, :] = 0 A = A.tocsr() 我不
我遇到了一个相当复杂的问题。我有一个包含三行的数据框:id、info 和 rownum。数据如下所示: id info row 1 a 1 1 b 2
我正在阅读learnjsdata.com并遇到了这种不熟悉的 JavaScript 语法。语法如下: lookupIndex[row[lookupKey]] = row; 有人知道这里发生了什么吗?我
我有一个表格,收集每周足球比赛的结果。 根据每场比赛的结果,我根据 ID 为玩家输入 3、1 或 0 分,具体取决于他们是赢、平还是输。 id Name A1 B1 C1 A2 B2
我有一个 mysql 表: 在表1中,我有3列:Bidang、Keahlian、Nilai。在 saran 列的表结果中,我想根据 bidang 组合 keahlian,但如果 nilai > 0,则
我有一个看起来像这样的表 | ID | item1 | item 2 | | 1 | A1 | B1 | | 2 | A2 |
我是一名优秀的程序员,十分优秀!