若要输出途径点的坐标位置,需要在动态规划的过程中记录路径信息。可以使用一个与矩阵大小相同的二维数组'path',用于记录每个位置的路径来源。

修改后的MATLAB代码如下:

% 读取Excel文件中的矩阵数据
matrix = xlsread('your_excel_file.xlsx');

% 创建dp数组和path数组,初始化起始点的值
dp = zeros(size(matrix));
path = cell(size(matrix));
dp(91, 20) = matrix(91, 20);
dp(80, 140) = matrix(80, 140);

% 动态规划,更新dp数组和path数组的值
for i = 1:size(matrix, 1)
    for j = 1:size(matrix, 2)
        if i == 91 && j == 20
            continue; % 跳过起始点
        end
        if i == 80 && j == 140
            continue; % 跳过起始点
        end
        if i > 1 && dp(i, j) < dp(i-1, j) % 从上方到达该位置
            dp(i, j) = dp(i-1, j);
            path{i, j} = [i-1, j];
        end
        if j > 1 && dp(i, j) < dp(i, j-1) % 从左方到达该位置
            dp(i, j) = dp(i, j-1);
            path{i, j} = [i, j-1];
        end
        dp(i, j) = dp(i, j) + matrix(i, j); % 更新当前位置的最大值
    end
end

% 输出最终的最大值
max_value = dp(end, end);
disp(max_value);

% 输出路径信息
path_coordinates = [size(matrix, 1), size(matrix, 2)];
while ~isempty(path_coordinates)
    x = path_coordinates(1);
    y = path_coordinates(2);
    disp([x, y]); % 输出途径点的坐标位置
    path_coordinates = path{x, y};
end

请注意,最后的disp([x, y])行会输出途径点的坐标位置。你可以根据需要进行进一步的处理,例如将途径点的坐标位置保存到一个数组中,或者进行其他操作。

使用动态规划获取矩阵中路径点坐标的MATLAB代码

原文地址: https://www.cveoy.top/t/topic/PkG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录