Как построить массив ячеек с (31 * 1) размерами в Matlab? - PullRequest
0 голосов
/ 07 марта 2020

У меня есть массив ячеек с одним столбцом и тридцатью одной строкой, и я собираюсь построить массив таким образом, чтобы горизонтальная ось изменялась с одного на тридцать один, а вертикальная ось соответствовала значениям, подобным равноправным элементам внутри ячейки. массив моей ячейки:

data2 =

31 × 1 массив ячеек

'2.4392E-09' '2.6506E-09' '3.0690E-09' '4.0424E-09' '7.1719E-09' '1.8084E-08' '6.0006E-08' '2.1621E-07' '7.7861E-07' '2.6695E-06' '8.4323E-06' '2.3340 E-05 '' 5.1783E-05 '' 1.1155E-04 '' 2.6871E-04 '' 3.4549E-04 '' 2.6871E-04 '' 1.1155E-04 '' 5.1783E-05 '' 2.3340E- 05 '' 8.4323E-06 '' 2.6695E-06 '' 7.7861E-07 '' 2.1621E-07 '' 6.0006E-08 '' 1.8084E-08 '' 7.1719E-09 '' 4.0424E-09 ' '3.0690E-09' '2.6506E-09' '2.4392E-09'

и

i2 =

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

и часть моего кода для участка:

i=1:1:31
data2=data(:,1)
i2=transpose(i);
i2=i2(:,1)
plot(i2,data2)

Ответы [ 2 ]

2 голосов
/ 07 марта 2020

str2double преобразует числа, хранящиеся в виде символов в ячейках data2, в тип цифры c (двойной). Это непосредственно применимо к клеточным массивам. Если требуемая ось х совпадает с 1:numel(data2), то указывать ее не нужно. Итак,

plot(str2double(data2));
0 голосов
/ 07 марта 2020

Этот вопрос направлен на самые основы MATLAB. У вас есть строки в массиве ячеек. Получите доступ к содержимому ячеек с помощью {} и преобразуйте его с помощью str2double в числа.

Кроме того, сохраняйте код чистым и читаемым (data, data2 и i, i2) не являются хорошими именами переменных ни на одном языке ... Вам не нужно транспонировать вектор, но если вы это сделаете, вы можете использовать ярлык .'. Обратите внимание, что . указывает, что это не сложная транспонирование

idx = 1:size(data,1)
cstr = data(:,1); % call the content of cells with {} / call a cell element with ()
num = str2double(cstr); % convert string to doubles/numbers
plot(idx.',num) % .' transposes an array/vector but in fact, you don't need it here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...