I would like to write a matlab code to calculate the value of a function of two variables g(i,j) = i j 1 for every pair (i,j) in the set MV = {(1,3), (2,4), (5,6), (5,4), (7,2)} so that the output results in g = {5, 7, 12, 10, 9} based on the following algorithm:
Step 0. MV_0 = empty set;
Step 1. h=1;
Step 2. while MV_h ~= empty set {
Step 3. for every (i,j) in MV {
Step 4. g(i,j)
Step 5. }
Step 6. h=h
Step 7. }
So far I have tried the following, but I couldn't figure it out. Please any hint/assistance. Thanks in advance!
MV = {}; % Step 0
h = 1; % Step 1
% MV= intersect(r(r==1),s(s==3))
while isempty(MV{h})==0 % MV{h} is nonempty from Step 2
MV = {[1,3], [2,4], [5,6], [5,4], [7,2]}
% Step 3, for every (i,j) in EMV{h}
for i=1:length(MV)
for j = 1:length(MV)
MV{h} = g(i,j); % Step 4
end
end
h = h 1; % Step 6
end
g % to get the final result g = {5, 7, 12, 10, 9}
% subfunction
function y = g(i,j)
y = i j 1;
end
CodePudding user response:
I guess u need the following:
function Camp()
clear,clc
MV = {};
h = 1;
while isempty(MV)
MV = {[1,3], [2,4], [5,6], [5,4], [6,2]};
for m = 1:length(MV)
i = MV{m}(1);
j = MV{m}(2);
MV{h} = g(i,j)
h = h 1;
end
end
end
% sub function
function y = g(i,j)
y = i j 1;
end
Output is:
MV =
Columns 1 through 3
[5] [7] [12]
Columns 4 through 5
[10] [9]