鱼C论坛

 找回密码
 立即注册
查看: 1415|回复: 6

[已解决]求救,关于C语言二维数组作业

[复制链接]
发表于 2020-8-17 21:33:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
要求求两个矩阵a和b的乘积,结果存储在矩阵c中,
基本思路是先给矩阵a和b赋值,然后计算出c矩阵中每个元素的值,再打印出c矩阵
程序如下:

#include <stdio.h>
int main()
{
        int i, j, t = 0;
        int a[2][3] = { 1, 2, 3,4,5,6 };
        int b[3][2] = { 1, 2, 3, 4, 5, 6 };
        int c[2][2] = {0};                     //定义矩阵,初始化

        for (i = 0; i < 2; i++)
        {
                for (j = 0; j < 2; j++)
                {
                        for (t = 0; t < 3; t++)
                        {
                                c[i][j] = c[i][j] + a[i][t] * b[t][j];      //计算出c矩阵中每一个元素的值
                        }
                }
        }
        for (i = 0; i < 2; i++)
        {
                for (j = 0; j < 2; j++)
                {
                        printf("%3d",c[i][j]);
                }
                printf("\n");                         //打印c矩阵
        }
        printf("\n");

        return 0;
}
但是这样的程序执行结果是这样子的,结果不对

为什么这个程序不行呢?
最佳答案
2020-8-17 22:55:50
程序没问题,结果也没问题

你为什么认为结果不对呢?

  1. 矩阵a:
  2. 1  2  3
  3. 4  5  6

  4. 矩阵b:
  5. 1  2
  6. 3  4
  7. 5  6

  8. 矩阵c:
  9. 1*1+2*3+3*5=22;1*2+2*4+3*6=28
  10. 4*1+5*3+6*5=49;4*2+5*4+6*6=64
复制代码
1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-17 22:55:50 | 显示全部楼层    本楼为最佳答案   
程序没问题,结果也没问题

你为什么认为结果不对呢?

  1. 矩阵a:
  2. 1  2  3
  3. 4  5  6

  4. 矩阵b:
  5. 1  2
  6. 3  4
  7. 5  6

  8. 矩阵c:
  9. 1*1+2*3+3*5=22;1*2+2*4+3*6=28
  10. 4*1+5*3+6*5=49;4*2+5*4+6*6=64
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-18 00:30:42 | 显示全部楼层
c[i][j] = c[i][j] + a[i][t] * b[t][j];      //计算出c矩阵中每一个元素的值
不是两个矩阵的乘积吗,为什么要加呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-18 23:40:54 | 显示全部楼层
sunrise085 发表于 2020-8-17 22:55
程序没问题,结果也没问题

你为什么认为结果不对呢?

我自己写错了,我以为矩阵是
1 2
3 4
5 6
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-18 23:41:39 | 显示全部楼层
chxchxkkk 发表于 2020-8-18 00:30
c[j] = c[j] + a[t] * b[t][j];      //计算出c矩阵中每一个元素的值
不是两个矩阵的乘积吗,为什么要加呢

这就是矩阵乘法的规定呢,
我那个程序没问题,答案也不错,我自己看错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-12 10:59:43 | 显示全部楼层
@FishC 使用深度注意力网络对时间序列进行预测,根据预测值与真实值的偏差来确定异常,这样进行异常检测的方法有什么优点呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-12 11:05:37 | 显示全部楼层
vectorfunction 发表于 2023-12-12 10:59
@FishC 使用深度注意力网络对时间序列进行预测,根据 ...

使用深度注意力网络进行时间序列预测与异常检测有以下几个优点:

1. 高精度:深度注意力网络是一种复杂的神经网络模型,具有强大的学习能力和模式识别能力。它可以捕捉到时间序列数据中的复杂关系,并能够准确地预测未来的值。

2. 自动化:使用深度注意力网络进行异常检测可以自动地识别异常值。传统的异常检测方法通常需要手动设置阈值或规则来判断异常值,而深度注意力网络可以自动学习数据的特征和模式,无需人工干预。

3. 鲁棒性:深度注意力网络在处理缺失值和噪声方面表现良好。它可以通过学习数据的分布和模式来填充缺失值,并且可以抵抗噪声的影响,从而提高了异常检测的鲁棒性。

下面是一个简单的示例代码,演示如何使用深度注意力网络进行时间序列的预测和异常检测:
  1. import tensorflow as tf
  2. # 定义深度注意力网络模型
  3. model = tf.keras.Sequential([
  4.     tf.keras.layers.LSTM(64, return_sequences=True),
  5.     tf.keras.layers.Attention(),
  6.     tf.keras.layers.Dense(1)
  7. ])
  8. # 编译模型
  9. model.compile(optimizer='adam', loss='mse')
  10. # 训练模型
  11. model.fit(x_train, y_train, epochs=10)
  12. # 使用模型进行预测
  13. predictions = model.predict(x_test)
  14. # 计算预测值与真实值的偏差
  15. deviation = predictions - y_test
  16. # 进行异常检测
  17. threshold = 2.0  # 设置异常阈值
  18. anomalies = [idx for idx, dev in enumerate(deviation) if abs(dev) > threshold]
  19. # 打印异常点的索引
  20. print("异常点索引:", anomalies)
复制代码

以上代码只是一个简单示例,实际应用中需要根据具体情况进行模型选择和参数调整。希望对你有所帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-14 03:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表