Ваш синтаксис для создания 3D-координат является правильным. Ваш вызов surf
неверен. Что вам действительно нужно сделать, это разделить x
, y
и z
на три отдельных параметра:
surf(x,y,z);
Когда вы это сделаете, вы получите эту поверхность. Обратите внимание, что сгенерированная фигура использовала MATLAB R2013a, поэтому отображаемая цветовая карта не является цветовой картой parula, доступной по R2014b и выше, но поверхность будет правильной, что вы ищете:
[/g0]
... теперь почему вам нужно отделить ваши x
, y
и z
точки, чтобы создать поверхность? Причина в том, что выполнение [x,y,z]
означает, что вы объединяете координаты x
, y
и z
в один двумерный сигнал, и поэтому происходит то, что вы создаете 2D-сигнал, который составляет 10 x 30 Вызов surf
с этим одиночным 2D-массивом автоматически предполагает, что значения x
варьируются от 1 до 30, а значения y
изменяются от 1 до 10, и это 2D-сетка значений, которые охватывают ось вашего surf
в сочетании с показанными z
значениями, где значения z
берутся из конкатенированной матрицы, созданной ранее. Если вы посмотрите на сюжет, который вы создали, вы увидите, что значения x
составляют от 1 до 30, и это явно не то, что вы хотите.
Вам нужно отделить x
, y
и z
для достижения желаемой плоскости.
Вы близко.
Помните, что replace
заменяет найденный текст вторым аргументом. Итак:
newString = string.replace(/\s+/g,''); // "thiscontainsspaces"
Находит любое количество последовательных пробелов и удаляет их. Попробуйте заменить их одним пробелом!
newString = string.replace(/\s+/g,' ').trim();
Я разобрался в одном, но мне любопытно, есть ли лучший способ ...
string.replace(/\s+/g,' ').trim()
Попробуйте этого, это заменит 2 или 2 + пробел от строки.
string.replace(/\s{2,}/g, '')