使用shell脚本读取矩阵的所有条目

时间:2015-05-22 12:14:19

标签: linux shell unix fortran

我有一个矩阵,

A(i,j), i=1,m and j=1,n

我可以在C和FORTRAN中阅读它,但我无法在shell脚本中读取它。我知道这是一个非常简单的问题,但我对shell脚本很新。我想阅读所有条目并做一些计算,例如我有一个矩阵:

A= 1 0 1 1
   2 1 0 2
   1 0 0 3
   1 2 3 0

现在我想将每个0与上面,下面,左边和右边的值进行比较。最后,我想对每个零点周围的这四个值进行一些计算(比如说总和)。在上面的例子中,结果将为 - 五个零

1st zero: 3
2nd zero: 4
3rd zero: 4
4th zero: 6
5th zero: 6  

所以在FORTRAN中,我可以通过读取所有值

来实现
do j=1,n
  do i=1,m
    if (A(i,j) .eq. 0) then
    B(i,j)=A(i-1,j)+A(i+1,j)+A(i,j+1)+A(i,j-1)
  enddo
enddo

但我想在shell脚本中这样做。怎么办?

1 个答案:

答案 0 :(得分:1)

假设数据是在“test.dat”中给出的(没有“A =”),我还是尝试了......

$(document).ready(function () {
    $('div#tab-wrapper div.myTabs').click(function () {
        var tab_id = $(this).attr('data-tab');
        $('div.content').removeClass('current');
        $(this).addClass('current');
        $("#" + tab_id).addClass('current');
        typeWriterEffect(tab_id, document.getElementById(tab_id).innerHTML, 50);
    });
});

var timer;

function typeWriterEffect(id, sentence, speed) {
    var index = 0; //reset index
    clearInterval(timer); //clear old timer
    document.getElementById(id).innerHTML = ""; //clear it immediately to prevent flicker on click
    timer = setInterval(function () {
        var char = sentence.charAt(index);
        if (char === '<') index = sentence.indexOf('>', index);
        document.getElementById(id).innerHTML = sentence.substr(0, index);
        index++;
        if (index === sentence.length) {
            clearInterval(timer);
        }
    }, speed);
}

结论:非常痛苦。推荐使用Fortran ......(如预期的那样)