Arrays MATLAB:基于行数组的内容设置多个变量

Arrays MATLAB:基于行数组的内容设置多个变量,arrays,matlab,Arrays,Matlab,我正在整理我的代码。我有一个包含5列的数组,每个列都分配给一个变量。目前,我使用: x = inputData(i,1); y = inputData(i,2); currentSampleTime = inputData(i,3); velocityX = inputData(i,4); velocityY = inputData(i,5); 我想我只要做以下几件事就可以把事情收拾干净: [x y currentSampleTime velocityX velocityY] = inputD

我正在整理我的代码。我有一个包含5列的数组,每个列都分配给一个变量。目前,我使用:

x = inputData(i,1);
y = inputData(i,2);
currentSampleTime = inputData(i,3);
velocityX = inputData(i,4);
velocityY = inputData(i,5);
我想我只要做以下几件事就可以把事情收拾干净:

[x y currentSampleTime velocityX velocityY] = inputData(i,:);

显然,这是行不通的。我想一定有一个优雅的解决方案?

如果inputData是一个单元格数组,那么您可以这样做:

[x y currentSampleTime velocityX velocityY] = deal(inputData{i,:});
但是,由于您正在使用变量
i
对行进行索引,我是否可以假定这在
for
循环中

如果是这样的话,我会在循环之前执行以下操作

x = inputData(:,1);
y = inputData(:,2);
currentSampleTime = inputData(:,3);
velocityX = inputData(:,4);
velocityY = inputData(:,5);
然后在循环中使用
x(i)
y(i)

。。。或者根据
inputData
的生成方式,尝试在读取或创建inputData时创建必要的数组

另外,就个人而言,我不喜欢将
I
用作m-code中的变量,因为如果没有正确初始化,它很容易与虚数混淆。

尝试以下方法:

wh = size(inputData);
temp = mat2cell(inputData,wh(1),ones(1,wh(2)));
[x,y,currentSampleTime,velocityX,velocityY] = deal(temp{:});