如何从键盘读取N矩阵

时间:2014-02-23 20:58:49

标签: matlab variables loops matrix

我需要保存用户的N个矩阵。我已经保存矩阵询问有多少行和列并迭代N次,但我的问题是如何保存N矩阵的名称。

实施例

matrix1 = [1 2 3; 4 5 6]

matrix2 = [7 8 9; 14 15 16]

matrixN = [0 0 0; 0 0 0]

这是我的代码:

for k = 1:nClases
    for i = 1:m(i)
        for j = 1:n(i)
            str = ['Ingresa elemento en fila ' num2str(i) ', columna ' num2str(j) ' de clase' num2str(k) ': ' ]; 
            clase(i,j) = input(str);
            eval(sprintf('clase%d = [1:k]', k));
        end 
    end 
end

k是我需要的矩阵数。

m是行。

n是列。

2 个答案:

答案 0 :(得分:3)

我假设您希望用户输入N个矩阵,并且不知道如何使用给定名称保存矩阵。

您可以尝试以下操作:

填写完给定的矩阵后,您可以执行以下操作:

Matrix{k} = clase;

这将在ij循环结束后发生。

最后,您将拥有一个矩阵的单元格数组。要访问第二个,您只需输入Matrix{2}

即可

答案 1 :(得分:0)

听起来你要做的就是为每个递增矩阵matrix_k创建一个变量名。以下行将返回一个字符串“filename”,其字符串为“matrix”,后跟矩阵编号k:

filename = genvarname(['matrix' num2str(k)]);

然后您可以使用以下内容保存矩阵:

save(filename, 'matrix');

如果您想简单地将每个新矩阵的值分配给新的变量名称,您可以改为使用以下内容:

eval(['matrix' num2str(k) '=' num2str(matrix)])

将创建一个变量“matrix_k”并将矩阵的当前值分配给它。