Bash에서 행렬 값을 변수에 할당하는 방법

Bash에서 행렬 값을 변수에 할당하는 방법

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입니다. 리눅스에서 이것을 달성하는 방법을 아는 사람이 있습니까? 미리 감사드립니다.

답변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

관련 정보