Я новичок в Matlab и буду признателен за любую возможную помощь!
Я запускаю симуляцию, и поэтому результаты меняются с каждым прогоном симуляции. Я хочу собрать результаты для анализа.
Например, во время первого прогона моделирования уровень фактора свертывания плазмы может изменяться в течение 5 часов, как таковой:
R (1) = [1,0 0,98 0,86 0,96 0,89]
Во втором прогоне уровни в каждый период времени могут немного отличаться, например.
R (2) = [1,0 0,95 0,96 0,89 0,86]
Я хотел бы (возможно, с помощью функции parfor) для создания матрицы, например.
R = [1,0 0,98 0,86 0,96 0,89
1,0 0,95 0,96 0,89 0,86]
Я столкнулся с проблемами, начиная от «В назначении A (I) = B, количество элементов в B и я должен быть одинаковым» до получения матрицы нулей или единиц (в зависимости от того, что я использую для предварительного распределения).
Мне нужно будет запустить симуляцию около 10000 раз, чтобы собрать значимое количество результатов.
Кто-нибудь может подсказать, как этого можно достичь? Подробное руководство или (полу) полный код был бы очень признателен за кого-то нового в Matlab, как я.
Заранее спасибо!
Это мой настоящий код, и, как вы можете видеть, есть 4 переменные, которые меняются в течение 744 часов (31 день), которые я хотел бы собрать по отдельности:
Iterations = 10000;
PGINR = zeros(Iterations, 744);
PGAmount = zeros(Iterations, 744);
CAINR = zeros(Iterations, 744);
CAAmount = zeros(Iterations, 744);
for iii = 1:Iterations
[{PGINR(iii)}, {PGAmount(iii)}, {CAINR(iii)}, {CAAmount(iii)}] = ChineseTTRSimulationB();
end
filename = 'ChineseTTRSimulationResults.xlsx';
xlswrite(filename, PGINR, 2)
xlswrite(filename, PGAmount, 3)
xlswrite(filename, CAINR, 5)
xlswrite(filename, CAAmount, 6)
Вы ищете что-то подобное?
Я немного упростил ваш код для лучшего понимания и добавил несколько фиктивных данных, функцию.
main.m
Iterations = 10;
PGINR = zeros(Iterations, 2);
PGAmount = zeros(Iterations, 2);
%fake data
x = rand(Iterations,1);
y = rand(Iterations,1);
parfor iii = 1:Iterations
[PGINR(iii,:), PGAmount(iii,:)] = ChineseTTRSimulationB(x(iii), y(iii));
end
ChineseTTRSimulationB.m
function [PGINRi, PGAmounti] = ChineseTTRSimulationB(x,y)
PGINRi = [x + y, x];
PGAmounti = [x*y, y];
end
сохранить каждый результат parfor в ячейках и объединить их позже.
Iterations = 10000;
PGINR = cell(1, Iterations);
PGAmount = cell(1, Iterations);
CAINR = cell(1, Iterations);
CAAmount = cell(1, Iterations);
parfor i = 1:Iterations
[PGINR{i}, PGAmount{i}, CAINR{i}, CAAmount{i}] = ChineseTTRSimulationB();
end
PGINR = cell2mat(PGINR); % 1x7440000 vector
%and so on...