首页 > 解决方案 > Matlab访问动态变量

问题描述

我正在尝试访问 Matlab 动态创建的变量,但我无法做到。我知道在 Matlab 中创建动态变量并不理想,但在这种情况下,它非常简单和舒适。使用它们。

假设用户可以定义几个点

point0 = [0,0,0;10,0,0];
point1 = [10,0,0;0,10,0];
point2 = [10,10,0;-10,0,0];

而我想要做的是在while循环中从所有这些中提取数据。但我不知道如何访问它们。

我试过了

point[i](1,1); % access number from first column and first row.
point{i}(1,1);

并存储"point" + i在变量中,但没有任何效果。我会感谢任何帮助。

标签: matlabsimulinkdynamic-variables

解决方案


此代码解决方案可能适合您(基于@Ander Biguri 的推荐):

point1 = [0,0,0;10,0,0];
point2 = [10,0,0;0,10,0];
point3 = [10,10,0;-10,0,0];
% use
point_cell = {point1, point2, point3};  % 1x3 cell

% or 
point_cell_dynamic{1} = point1;         % 1x4 cell
point_cell_dynamic{2} = point2;  
point_cell_dynamic{3} = point3;  
point_cell_dynamic{4} = point3;  

point_cell{1}(1,1)                      % {point1} (row = 1 ,column = 1)  -> prints 0
point_cell{3}(2,1)                      % {point3} (row = 2 ,column = 1)  -> prints-10

推荐阅读