Как мне индексировать мои выходные данные в матрицу длины (x) x2?

#matlab #vector #indexing #calculus

#matlab #вектор #индексирование #исчисление

Вопрос:

У меня есть скрипт, который, учитывая два значения вокруг моей критической точки, выводит значения x и y для указанной критической точки.

У меня есть x-вектор со всеми моими предположениями для x и y-вектор со всеми моими предположениями для y.

Теперь я хочу взять первые элементы из каждого вектора. Поместите это в мой

функция

 [x,y]=MyMinMax(f,a,b) 
  

и дайте мне два моих правильных значения для x и y.

Теперь я хочу поместить эти значения в матрицу Nx2.

Где все x находятся в первом столбце, а все y — во втором столбце.

Вы можете увидеть мою текущую итерацию кода.

 f=@(x,y)topography(x,y);

x=[3.44 1.4 2.1 3.278 3.15 5.217 6.054 ...
    5.385 5.786 5.953 6.89 6.455 7.86 9.13 9.298 9.565];
y=[2.94 9.06 8.094 9.331 8.528 9.097 6.488 ...
    5.117 4.08 3.378 1.204 8.595 3,177 5.452 6.355 8.763];
a=zeros(length(x));
b=zeros(length(y));


for i=1:length(x)

[a,b]=MyMinMax(f,x(i),y(i))


end
  

Я ожидаю, что у меня будет матрица Nx2, так что все значения x будут в первом столбце с соответствующим y во втором столбце.

Что-то вроде:

 x(1) | y(1)
-----------
x(2) | y(2)
-----------
x(3) | y(3)
-----------
x(4) | y(4)    

...
  

и так далее.

Если то, что я пытаюсь передать, непонятно, дайте мне знать, и я постараюсь объяснить это лучше.

Комментарии:

1. Вы пробовали индексировать в выходной массив? Это поможет, если вы покажете, что вы пробовали и почему это не делает то, что вы хотели.

2. @CrisLuengo Я пытался индексировать свои выходные данные, например [a(i),b (i)]=MyMinMax(f, x (i),y(i) Но при печати он дает мне какой-то странный ответ, сгруппированный с нулями и моими значениями x и y между ними. Я действительно не знаю, как интерпретировать результат

3. Может MyMinMax быть, это дает вам нулевые выходные данные? попробуйте инициализировать a и b с nan помощью .

4. @Anthony Теперь я получаю тот же результат с NaN вместо 0 🙂

5. используйте nan(size(x)) . О, и здесь у вас ошибка. Если вы укажете только zeros() or nan() с одним аргументом, это приведет к созданию квадратной матрицы, и, вероятно, именно поэтому у вас есть куча нулей. Проверьте примеры здесь