Список десятичных чисел в строках в MATLAB

Я пытаюсь создать список чисел вида 1.X, где X идет от 1 до 65 по порядку.

1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 1.10, 1.11, ..., 1.62, 1.63, 1.64, 1.65

Я попробовал следующий код, но не получил того, что мне нужно:

v=1.1:0.1:1.65;

В итоге у меня получается список от 1.1-1.6 (всего 6 цифр). Я поигрался с переменной шага, изменил ее с 0,1 на 0,005, но все равно безуспешно. Как только я получу правильный список номеров, я хотел бы преобразовать его в строки.

Мне бы хотелось, чтобы было так: 1.1,1.2,1.3,1.4,1.5,1.6...1.65.

CircAnalyzer 12.06.2024 23:39

Нет, я хочу, чтобы список был 1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,1.10,1.11..1.65]. Всего 65 номеров. Не только те 7, которые вы указали.

CircAnalyzer 12.06.2024 23:44

Да, это требовало объяснения, потому что десятичные числа работают совсем не так. Это не список десятичных чисел.

Cris Luengo 13.06.2024 00:39
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
2
3
70
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете использовать num2str() от 1 до 65, а затем соединить его с 1.:

str_v = cell(65, 1);
for i = 1:65
    str_v{i} = ['1.', num2str(i)];
end

for i = 1:length(str_v)
    disp(str_v{i});
end

Принты

1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
1.11
1.12
1.13
1.14
1.15
1.16
1.17
...
1.63
1.64
1.65

Мне бы хотелось, чтобы было так: 1.1,1.2,1.3,1.4,1.5,1.6...1.65. Прямо сейчас это решение дает мне такие числа, как 1,15,1,25. Я не хочу таких.

CircAnalyzer 12.06.2024 23:41

Мне нужно, чтобы оно дошло до 1,65. Итого 65 номеров.

CircAnalyzer 12.06.2024 23:45

Что случилось с 1.2,1.3,1.4,1.5,1.6,1.7,1.8, 1.9 и 1.10?

CircAnalyzer 13.06.2024 00:07

Только что отредактировал свое исходное сообщение, чтобы показать, какие цифры мне нужны.

CircAnalyzer 13.06.2024 00:11
Ответ принят как подходящий

Вы можете добиться этого, используя конкатенацию строк как

result = "1." + string((1:65).');

или проще говоря, используя неявное преобразование (спасибо @Wolfie),

result = "1." + (1:65).';

Это создает массив строк. Если вы предпочитаете массив ячеек из векторов символов, просто используйте cellstr для преобразования:

result = cellstr("1." + (1:65).');

Я думаю, что это может быть еще проще: вам не нужен вызов string(), и вы можете просто сделать "1."+(1:65).' для вывода того же самого, поскольку строки обрабатывают подразумеваемое преобразование из чисел.

Wolfie 13.06.2024 09:24

Другие вопросы по теме