【问题标题】:How to read N matrixes from the keyboard如何从键盘读取 N 个矩阵
【发布时间】:2014-02-23 20:58:49
【问题描述】:

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

例子

矩阵1 = [1 2 3; 4 5 6]

矩阵2 = [7 8 9; 14 15 16]

.

.

.

矩阵N = [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 是列。

【问题讨论】:

    标签: matlab variables loops matrix


    【解决方案1】:

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

    您可以尝试以下方法:

    给定的矩阵填完后,你可以这样做:

    Matrix{k} = clase;
    

    这将在 ij 循环结束后出现。

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

    【讨论】:

      【解决方案2】:

      听起来您正在尝试为每个递增矩阵 matrix_k 创建一个变量名。以下行将返回字符串“filename”,字符串“matrix”后跟矩阵​​编号 k:

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

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

      save(filename, 'matrix');
      

      如果您想简单地将每个新矩阵的值分配给一个新的变量名,您可以使用以下代码:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多