Цитирование по столбцам для хранения интерполированных значений

Единственным символом linux (и unix), который не разрешен в пути к файлу, является символ ascii nul \0 (он недопустим, поскольку он используется в качестве ограничителя строк --- в этом случае терминатор имени пути --- в открытом (2) системном вызове, поэтому вы можете иметь только один, в конце, не считая символом файла). Старые стили запретили группировку нескольких косичек /, поэтому правильное регулярное выражение будет (\/?[^\0/])+|\/ (последовательность необязательного символа косой черты, за которой следует не-нулевой символ и символ не слэш, или только запись / - указав корневой каталог), который позволяет использовать все символы, но ascii nul, и не допускает одновременного отображения двух слэшей. Недавние реализации позволяют группировать косые черты (сворачивая их в один), поэтому допустимый путь regexp будет [^\0]+.

Но это соответствует всем введенным вами данным (даже, он будет соответствовать всем входам как один путь к файлу, так как символы \n разрешены как часть имени файла), поэтому вам нужно быть более точным в своем вопросе, чтобы разоблачить то, что вы хотите, и то, что вы не хотите принимать. "foo.log was written" и "the file " (с этим конечным пространством) являются действительными именами файлов в linux (и в unix). как насчет других управляющих символов? Что относительно escape-последовательностей, символов wildcar (например * или ?) и т. Д.?

0
задан Venkat kamal 13 July 2018 в 18:04
поделиться

2 ответа

Просто используйте цикл for для цикла через каждый столбец.

missing_part = zeros(size(final_plot_matrix,1),size(final_plot_matrix,2));
for ip = 2:1:data_to_be_interpolated
    missing_part(2:end,ip) = fillmissing(final_plot_matrix(2:end,ip),'linear','SamplePoints',final_plot_matrix(2:end,1));
end
missing_part(:,1) = final_plot_matrix(:,1);
missing_part(1,:) = final_plot_matrix(1,:);

Помните, что этот final_plot_matrix должен быть целыми данными.

0
ответ дан amahmud 17 August 2018 в 12:41
поделиться
  • 1
    @it не работает. Я добавил модифицированный код. – Venkat kamal 13 July 2018 в 17:31
  • 2
    Посмотрите сейчас. Кстати, вы действительно новичок в MATLAB? – amahmud 13 July 2018 в 17:50
  • 3
    да. Недавно начал учиться. Я все еще получаю сообщение об ошибке. Отображается измененный код и ошибка. – Venkat kamal 13 July 2018 в 18:00
  • 4
    Затем вы должны попытаться отладить ошибки. Вы можете найти здесь что-то не так? missing_part (2: end, ip) = fillmissing (data_to_be_interpolated (2: end, ip), 'linear', 'SamplePoints', final_plot_matrix (2: end, 1)); Посмотрите на это, и ваш внутри внутри петли. Надеюсь, вы поняли это. – amahmud 13 July 2018 в 18:11
  • 5
    Спасибо за помощь. Я попытался отладить его, я все еще не могу его решить. – Venkat kamal 13 July 2018 в 18:37

Попробуйте это. он сохранит значения «data_to_be_interpolated» в матрице недостающих из второго столбца.

   data_to_be_interpolated = final_plot_matrix(:,:);
   missing_part = 
   zeros(size(data_to_be_interpolated,1),size(data_to_be_interpolated,2)-1);

   for ip = 1:size(missing_part,2)
   missing_part(:,ip) = data_to_be_interpolated(:,ip+1);
   end
0
ответ дан Rijo Kuriakose 17 August 2018 в 12:41
поделиться
Другие вопросы по тегам:

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