首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Toeplitz矩阵初始化

Toeplitz矩阵初始化
EN

Stack Overflow用户
提问于 2016-04-12 20:13:22
回答 1查看 445关注 0票数 0

我正在尝试用java初始化Toeplitz矩阵。我想要这张表格

6 -4 1 0 0 ... 0 -4 6 -4 1 0 ... 0 1 -4 6 -4 1 ...0 ................ 0 ... 1 -4 6 -4 1 0 ... ...1 -4 6-4 0 .. ... 0 1 -4 6

我意识到问题就在if(j>i)中,在data[i-j-1]的范围内。我试图更改它,但是我得到了IndexOutOfBounds错误。这是我到目前为止编写的代码

代码语言:javascript
复制
    int a1[][] = new int[size][size];


    int data[] = new int[size];

    data[0] = 6;
    data[1] = -4;
    data[2] = 1;

    for(int i=3; i<size; i++){
        data[i] = 0;
    }

    /* Creating the A1 matrix */
    for(int i=0; i<size; i++)
    {
        for(int j=0; j<size; j++)
        {
            if(j>i){
                a1[i][j] = data[j-i-1];

            }else if(j==i){
                a1[i][j] = data[0];

            }else{
                a1[i][j] = data[i-j-1];
            }


        }
    }

输出是

代码语言:javascript
复制
    The Matrix is : 
6   6   -4  1   0   0   0   0   0   0   
6   6   6   -4  1   0   0   0   0   0   
-4  6   6   6   -4  1   0   0   0   0   
1   -4  6   6   6   -4  1   0   0   0   
0   1   -4  6   6   6   -4  1   0   0   
0   0   1   -4  6   6   6   -4  1   0   
0   0   0   1   -4  6   6   6   -4  1   
0   0   0   0   1   -4  6   6   6   -4  
0   0   0   0   0   1   -4  6   6   6   
0   0   0   0   0   0   1   -4  6   6   
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-12 20:25:24

问题是,如果i = j+1j = i+1a1被指定为a1[i][j] = data[0]。这是一个错误,你应该删除1:

代码语言:javascript
复制
for(int j=0; j<size; j++) {
    if(j>i){
        a1[i][j] = data[j-i];
    }else if(j==i){
        a1[i][j] = data[0];
    }else{
        a1[i][j] = data[i-j];
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36583182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档