如何在bash中将矩阵的值分配给变量

如何在bash中将矩阵的值分配给变量

我在ubuntu中创建了一个50 x 1矩阵,如下所示:

#!/bin/bash
declare -A matrix
num_rows=1
num_columns=50

for ((n=0;n<=(($num_columns-1));n++)) do
for ((i=1;i<=num_rows;i++)) do
    matrix[$i,$j]=net$(($n+1))
    #echo "${matrix[$i,$j]}" >> temp
done
done

现在我想将 50 x 1 矩阵的每个元素分配给一个变量(比如“q”);例如 q1=net1,q2=net2,...q50=net50。有谁知道如何在linux中实现这一点?提前致谢。

答案1

根据要求,我正在创建一个变量列表,前缀为 ,q后跟序列号 (c),然后将其分配给您的数组变量。

#!/bin/bash
declare -A matrix
num_rows=1
num_columns=50

c=1

for ((n=0;n<=(($num_columns-1));n++)) do
    for ((i=1;i<=num_rows;i++)) do
        matrix[$i,$j]=net$(($n+1))
        declare "q$c=${matrix[$i,$j]}"
        ((c++))
    done
done

要输出它们,您可以使用类似如下的方法:

for ((i=1;i<(($num_columns-1));i++)) do
    var=q$i
    echo "${!var}"
done

相关内容