Как я создаю расположенный с равными интервалами массив значений в MATLAB?

Ну, вот regex, в котором Вы будете нуждаться...

^[A-Fa-f0-9]{32}$|^({|\\()?[A-Fa-f0-9]{8}-([A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}(}|\\))?$|^({)?[0xA-Fa-f0-9]{3,10}(, {0,1}[0xA-Fa-f0-9]{3,6}){2}, {0,1}({)([0xA-Fa-f0-9]{3,4}, {0,1}){7}[0xA-Fa-f0-9]{3,4}(}})$

, Но это только для начинающих. Необходимо будет также проверить, что различные части, такие как дата/время в допустимых диапазонах. Я не могу вообразить этот являющийся немного быстрее, чем метод попытки/выгоды, который Вы уже обрисовали в общих чертах. Надо надеяться, Вы не получаете это много недопустимых GUID для гарантирования этого типа проверки!

10
задан gnovice 8 December 2009 в 02:42
поделиться

3 ответа

Это можно сделать двумя способами:

  • Использование оператора двоеточия :

     startValue = 1;
    endValue = 10;
    nElements = 20;
    stepSize = (endValue-startValue) / (nElements-1);
    A = startValue: stepSize: endValue;
    
  • Использование функции linspace (как было предложено Амро ):

     startValue = 1;
    endValue = 10;
    nElements = 20;
    A = linspace (startValue, endValue, nElements);
    

Имейте в виду, что количество элементов в результирующих массивах включает конечных точек. В приведенных выше примерах разница между значениями элементов массива будет 9/19 или немного меньше, чем 0,5 (в отличие от образца массива в вопросе).

19
ответ дан 3 December 2019 в 14:24
поделиться

linspace генерирует линейно разнесенные векторы:

>>  A = linspace(1, 10, 20-1)
ans =
1 1.5 2 2.5 3 3.5 ... 9.5 10
10
ответ дан 3 December 2019 в 14:24
поделиться

Простой однострочник!

1:0.5:10;

Вывод:

1 1.5 2 2.5 ... 9 9.5 10

Обратите внимание, что это будет 19-элементный вектор, а не 20.

5
ответ дан 3 December 2019 в 14:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: