首页 > 解决方案 > 如何定义动态命名矩阵?

问题描述

如果您使用 VBA 在 Excel 中定义从A1到的范围,您可以使用. 另一方面,可以写下来。请问如何在MATLAB中使用第二种方式?A10Range("A1:A10")Range("A1:A"&10)

我有一些矩阵M1, M2, M3, ...,我希望通过使用迭代器来定义它们,FOR这有助于我完全停止编写矩阵名称。

标签: matlab

解决方案


尽管有评论认为这种方法不受欢迎,但下面是一种以编程方式进行的方法:

% define cell with matrix names
number_of_matrices_I_want = 5;
my_matrix_names = repmat({'NA'}, 1, number_of_matrices_I_want);
for ii = 1:length(my_matrix_names)
    my_matrix_names(ii) = {strcat('M',num2str(ii))};    
end

% example for how to populate a matrix from "my_matrix_names"
x = rand(5,1); % fake numbers
y = rand(5,1);
eval([my_matrix_names{1} '=  [x y]']);

推荐阅读