一、实验原理
在本实验中,我们通过编写Matlab函数在矩阵A中查找与矩阵B完全相同的所有子矩阵。方法是遍历矩阵A的所有与矩阵B相同维度的子矩阵,逐个检查其是否与矩阵B相同。若相同,则记录该子矩阵的左上角坐标;若不同,则继续尝试下一个位置。
二、实验步骤
(1)准备环境:启动Matlab软件,确保可以正常运行。
创建名为findsub.m的函数文件。
(2)编写函数:在findsub.m中定义函数findsub,接受矩阵A和矩阵B作为参数。设计循环结构,遍历矩阵A中与矩阵B维度相同的子矩阵起始位置。对于每个位置,提取相应大小的子矩阵与B比较。若子矩阵与B相同,则记录该起始位置的左上角坐标,添加到结果列表。
(3)保存函数:保存findsub.m文件。
(4)编写测试程序:在Matlab命令窗口创建测试程序,输入测试用例,包括简单矩阵和包含多个相同子矩阵的复杂矩阵。调用findsub函数,并传入测试用例。
(5)运行测试:运行测试程序,观察输出结果,验证函数正确性。
三、代码
1.函数.m文件代码(省略)
2.测试代码
①测试示例1:A中存在与B相同的子矩阵
测试结果1:A = 1 2 3 4;B = 2 3;findsub = 1 2
②测试示例2:A中无与B相同的子矩阵
测试结果2:A = 1 2 3 4 5;B = 2 3 4;findsub = []
③测试示例3:A中有两个与B相同的子矩阵
A = 1 2 3 4 5;B = 3 4 5 6;findsub = 2 2;findsub = 3 1
温馨提示:答案为网友推荐,仅供参考