how can i make matlab select a value for a vector variable from a set of data

2 views (last 30 days)
i am doing optimization design model that compare the fuel consumption of different diesel engines.
so, i have excel sheet contains the MCR of different diesel engines from manufactureres.
i have defined a variable MCR and i want matlab to assign a value for MCR from the values of MCR data that stored in excel sheet
i want that to be done automatically every time the optimization algorithm run a new attempt.
what is the function i should use to assign the value of MCR from the created set of data?

Accepted Answer

darova
darova on 19 Feb 2020
Use xlsread
MCRdata = xlsread('data.xls'); % read data from excel file
MCR0 = MCRdata(5); % assign 5th value
  4 Comments
Nourhan Elsayed
Nourhan Elsayed on 20 Feb 2020
my model has the following variables
m = 3; % ''for examble'' m is the number of installed main engines per one propulsion train
j = 4 % ''for examble'' j number of modes of operation
x = sym ('x', [m j]); %x is the loading of main engine number m at j mode of operation
assume (x >= 0);
assumeAlso (x<=1);
thus, x is a symbolic matrix variable of size m x j
i have used this function to define MCR as an array of size 1x3
MCR = sym('MCR', [1 m]) % MCR of engine with index m
and the below function defines MCR data set
MCRdata = [250; 450;1500;900;2500;2000;1750]
my objective is to make the model choose a value for MCR from the MCRdata, no matter the order. Then, this value of MCR goes through a series of functions and calculations later on.
So, MCR is a symbolic variable whos value is assigned automatically from a defined MCRdata
darova
darova on 20 Feb 2020
What about this trick?
MCRdata = [250; 450;1500;900;2500;2000;1750];
ix = randi(length(MCRdata),1,length(MCR));
MCR = sym( MCRdata(ix) );
[ix' MCR]

Sign in to comment.

More Answers (0)

Categories

Find more on Symbolic Math Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!