答案 0 :(得分:3)
如MATLAB文档所述,您可以使用ind2sub
函数:
IND = [3 4 5 6]
s = [3,3];
[I,J] = ind2sub(s,IND)
I =
3 1 2 3
J =
1 2 2 2
答案 1 :(得分:1)
函数ind2sub
应该有效。另一种选择是手动计算。这很简单。注意矩阵的结构。它由按列分布的线性索引表示。这意味着指数可以计算为:
idxRow = mod(idx-1,nRows)+1;
idxCol = ceil(idx./nColumns);
这或多或少是在ind2sub
中所做的,除了该函数巧妙地解决了N维矩阵的问题。并且还有一些错误处理。
答案 2 :(得分:0)
public class MainClass{
public static void main(String [] args){
Car newCar; //<-----------changed this
Person newPerson = new Person();
int position = 0;
int x= 0;
int option;
do{
//Code for menu options and user input detection of options...
//...
//...
switch(option){
case 1:
newCar = new Car(); //<------------This fixed the issue
// get user input and set it to newCar variables.....
newCar.setVariableX();
newCar.setVariableY();
//assigment of new car to array of cars in newPerson
newPerson.setCar(newCar,position);
position++;
break;
case 2: x =2; //exit option
break;
}while(x!=2);
// invoque print option for Array of Cars
}
}
请注意,n = 3;
[X,Y] = meshgrid(1:n);
C = cell(n,n);
for ii = 1:n
for jj = 1:n
C{ii,jj} = [X(ii,jj) Y(ii,jj)];
end
end
和X
矩阵可能就是您要查找的内容,因为它们是矩阵。为了包括索引单元格,我必须使用嵌套循环,但也可能是一种矢量化方法。
Y
其中每个X =
1 2 3
1 2 3
1 2 3
Y =
1 1 1
2 2 2
3 3 3
C =
[1x2 double] [1x2 double] [1x2 double]
[1x2 double] [1x2 double] [1x2 double]
[1x2 double] [1x2 double] [1x2 double]
是所请求的索引组合。