[已解决] matlab中如何对迭代矩阵进行标序号操作

[复制链接]
Mrs❀丁大寶 发表于 2019-7-1 11:31:22
如题,我想要计算一个超松弛迭代,但是需要对每一次计算的矩阵中的每个元素,进行迭代次数的标记,表示为上标,从0到k,k为迭代次数,请问如何才能实现?具体公式如图所示,跪求各位大神了。我想毕业:'(:'(  

具体公式

具体公式

最佳答案


TouAkira 发表于 2019-7-1 11:42:11
矩阵是二维的,迭代次数可以视为额外的维度,做成三维数组,以每次的矩阵为一"页",像一本书一样一页一页摞起来不就得了
SOR这么成熟的算法,代码一搜都是一大把,随便找个先学习学习就是了
回复此楼

5 条回复


TouAkira 发表于 2019-7-1 11:42:11
矩阵是二维的,迭代次数可以视为额外的维度,做成三维数组,以每次的矩阵为一"页",像一本书一样一页一页摞起来不就得了
SOR这么成熟的算法,代码一搜都是一大把,随便找个先学习学习就是了
回复此楼

Mrs❀丁大寶 发表于 2019-7-1 11:49:13
TouAkira 发表于 2019-7-1 11:42
矩阵是二维的,迭代次数可以视为额外的维度,做成三维数组,以每次的矩阵为一"页",像一本书一样一页一页摞 ...

不好意思啊,我是刚开始学matlab。我是想对矩阵中每个元素都加上页数,也就是上标,刚刚去百度了一下matlab中可以直接添加上标,但是好像不能添加动态上标。我还是不太清楚如何对矩阵添加“页数”:'(

WZYang 发表于 2019-8-21 16:42:06
你想要的是不是这个效果(这里我自定义了数据):

P(:,:,1) = ones(4,5);
P(:,:,2) = 3*ones(4,5);
P(:,:,3) = 4*ones(4,5);
[n,m] = size(P(:,:,1));
value_fenzi = 0;
value_fenmu = 0;
for k = 2: 3
    for j = 1:n-1
        for i = m
            value_fenzi = value_fenzi + abs(P(j,i,k) - P(j,i,k-1));
            value_fenmu = value_fenmu + abs(P(j,i,k));
        end
    end
end

delta = value_fenzi / value_fenmu

Mrs❀丁大寶 发表于 2019-8-26 16:46:25
WZYang 发表于 2019-8-21 16:42
你想要的是不是这个效果(这里我自定义了数据):

P(:,:,1) = ones(4,5);

。。。你的代码我看不懂 很尴尬

zhiliaozhiliao9 发表于 2020-9-27 13:21:35
WZYang 发表于 2019-8-21 16:42
你想要的是不是这个效果(这里我自定义了数据):

P(:,:,1) = ones(4,5);

可以帮忙看下这个该如何写吗

A.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表