Arrays MATLAB:基于行数组的内容设置多个变量
我正在整理我的代码。我有一个包含5列的数组,每个列都分配给一个变量。目前,我使用: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
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{:});