how to fix error for unrecognized function.

1 view (last 30 days)
Juan
Juan on 22 Feb 2024
Commented: Walter Roberson on 22 Feb 2024
function [eqPrice, clearedBuyQuantity, clearedSellQuantity, socialWelfare] = marketClearing(buyPrice,buyQuantity,sellPrice,sellQuantity)
nBuyOrders = length(buyPrice);
nSellOrders = length(sellPrice);
cvx_begin
variable clearedBuyQuantity(nBuyOrders);
variable clearedSellQuantity(nSellOrders);
dual variable eqPrice;
minimize(sellPrice*clearedSellQuantity-buyPrice*clearedBuyQuantity);
subject to
0 <= clearedBuyQuantity <= buyQuantity;
0 <= clearedSellQuantity <= sellQuantity;
eqPrice : sum(clearedSellQuantity) - sum(clearedBuyQuantity) == 0;
cvx_end
socialWelfare = -cvx_optval;
bus1Data = readmatrix(p1Bus1Data.csv);
bus2Data = readmatrix(p1Bus2Data.csv);
  3 Comments
Walter Roberson
Walter Roberson on 22 Feb 2024
You need to have defined values for buyPrice, buyQuantity, sellPrice, and sellQuantity before you call the function.

Sign in to comment.

Answers (1)

bo zhang
bo zhang on 22 Feb 2024
When you try to run the ‘marketClearing.m’ file directly, your MATLAB workspace does not have the input variables for the function. So the error message shows that the function or variables are unrecogized. You need to find and run the main function file that calls the 'marketClearing' function.
From your code, it is also evident that the MATLAB CVX toolbox is necessary if you want to run this code properly.

Categories

Find more on Programming 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!