gpt4 book ai didi

c - 如何在C编程中使用指针编写乘法矩阵

转载 作者:行者123 更新时间:2023-11-30 14:31:03 24 4
gpt4 key购买 nike

好吧,所以我不知道如何编写这个函数,它只需要一个标量并将其乘以矩阵,但我不知道如何调用它或任何东西。

我已经创建了矩阵:

MX* mxCreate(unsigned int height, unsigned int width) {
int i = 0;
double** mxPtr;
mxPtr = (double**)malloc(sizeof(double*) * height);
ASSERT(mx, "Memory allocation failed");
for(i = 0; i < height; i++){
mxPtr[i] = (double *) malloc(sizeof(double) * width);
ASSERT(mx[i], "Memory allocaiton failed");
}
MX *mx = malloc(sizeof(MX));
ASSERT(mx, "Memory allocation failed");
mx->w = width;
mx->h = height;
mx->m = mxPtr;
return mx;
}

但是我如何标量相乘,这是我到目前为止所拥有的:

MX* mxScalar(const MX* mx, double scalar) {
int i, j;
s = scalar;
for(i=0; i < h; i++)
{
for(j=0; j<w; i++)
{
mx[i][j] = s * m[i][j];
}
}
return mx;
}

谢谢

最佳答案

作为一个基本结构,这看起来不错(除了你有一个 i++ ,其中你的意思是 j++)。您只需作为 mx 的成员访问 hwm 即可:

for(i = 0; i < mx->h; i++)
{
for(j = 0; j < mx->w; j++)
{
mx->m[i][j] *= s;
}
}

您的创建例程确实需要将矩阵中的每个条目设置为 0.0,不过 - malloc 返回的内存可能包含任何随机垃圾。

关于c - 如何在C编程中使用指针编写乘法矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2160470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com