Matrix C语言中的3x3二维矩阵乘法

Matrix C语言中的3x3二维矩阵乘法,matrix,multidimensional-array,formula,multiplication,Matrix,Multidimensional Array,Formula,Multiplication,[在此处输入图像描述][1] 计算这个方程的最好方法是什么?这是我的尝试,我在某种程度上为out[2]和out[3]找到了正确的答案,但我相信有更好的方法。我尝试了结构,但没有任何运气。对于负数,数据类型是否正确?当进行加法和乘法运算时,它们是否会传递到输出中 谢谢你的建议 int main() { int i, j; int array[i][j]; array[1][1]= 257; array[1][2]= 504; array[1][3]= 98; array[2][1]= -148;

[在此处输入图像描述][1]

计算这个方程的最好方法是什么?这是我的尝试,我在某种程度上为out[2]和out[3]找到了正确的答案,但我相信有更好的方法。我尝试了结构,但没有任何运气。对于负数,数据类型是否正确?当进行加法和乘法运算时,它们是否会传递到输出中

谢谢你的建议

int main() {
int i, j;
int array[i][j];

array[1][1]= 257; array[1][2]= 504; array[1][3]= 98;
array[2][1]= -148; array[2][2]= -291; array[2][3]= 439;
array[3][1]= 439; array[3][2]= 368; array[3][3]= 71;



int input[3];

float R=0.2, G=2, B=5;

input[2]=R;
input[2]=G;
input[3]=B;


float tot[3];

tot[2]=input[2]*array[1][1] + input[2]*array[1][2] + input[3]*array[1][3];
tot[2]=input[2]*array[2][1] + input[2]*array[2][2] + input[3]*array[2][3];
tot[3]=input[2]*array[3][1] + input[2]*array[3][2] + input[3]*array[3][3];



int add[3];

add[2]=16;
add[2]=128;
add[3]=128;


float out[3];

out[2]=add[2]+tot[2];
out[2]=add[2]+tot[2];
out[3]=add[3]+tot[3];

int z;
for (z = 0; z < 3; z++)
 {
      printf("\nout[z] = %f", out[z]);
 }

return 0;
}
intmain(){
int i,j;
int数组[i][j];
数组[1][1]=257;数组[1][2]=504;数组[1][3]=98;
数组[2][1]=-148;数组[2][2]=-291;数组[2][3]=439;
数组[3][1]=439;数组[3][2]=368;数组[3][3]=71;
int输入[3];
浮点数R=0.2,G=2,B=5;
输入[2]=R;
输入[2]=G;
输入[3]=B;
浮动总收益[3];
tot[2]=输入[2]*数组[1][1]+输入[2]*数组[1][2]+输入[3]*数组[1][3];
tot[2]=输入[2]*数组[2][1]+输入[2]*数组[2][2]+输入[3]*数组[2][3];
tot[3]=输入[2]*数组[3][1]+输入[2]*数组[3][2]+输入[3]*数组[3][3];
int加[3];
加[2]=16;
加[2]=128;
加[3]=128;
浮出水面[3];
out[2]=添加[2]+总计[2];
out[2]=添加[2]+总计[2];
out[3]=加上[3]+tot[3];
intz;
对于(z=0;z<3;z++)
{
printf(“\nout[z]=%f”,out[z]);
}
返回0;
}
计算这个方程的最好方法是什么

取决于你想解的方程。也许你想在你试图提供的链接中发布等式。如果你更正了链接,可能会有人告诉你

对于负数,数据类型是否正确

简而言之:您可以使用int。但是:也许您可以阅读更多关于c中的数据类型以及整数和无符号整数之间的差异的内容。您还可以将“input[]”声明为int,但分配浮点

对于out[2]和out[3],我大致上得到了正确的答案

您可以使用两次[2]访问所有阵列

input[2]=R;
input[2]=G;
input[3]=B;
假设阵列访问从1开始,您应该这样做

input[1]=R;
input[2]=G;
input[3]=B;
顺便说一下,我的结果是在更正数组的索引值之后得出的:

1565.4
1445.0
3937.0