В MATLAB я хочу получить значение определенной позиции в матрице через вектор
v = [1, 2, 3, 4]; A(v) A(v(:))
как я могу это сделать?
Длина вектора неисправлено, поэтому я не могу жестко кодировать A(v(1), v(2), v(3), v(4)).
A(v(1), v(2), v(3), v(4))
Преобразуйте v в массив ячеек (скажем, cellv), используя num2cell, а затем извлеките элементы cellv в виде значений, разделенных запятыми, в индекс A и внедрите A(v(1), v(2), v(3), v(4), ... v(n))в обобщенном виде.
v
cellv
num2cell
A
A(v(1), v(2), v(3), v(4), ... v(n))
cellv = num2cell(v); A(v{:})