نقل قول نوشته شده توسط mb1372 مشاهده تاپیک
آره. برای اینکه متغیر سراسری تعریف کنید دستور زیر رو در کد اصلی و کد تابع قرار بدید (بهتره قبل از مقداردهیش باشه):
global var

البته چون چند تا متغیر سراسری داریم میشه این جوری هم نوشتش:
global var Data





بعدش به جای اینکه نقطه اول رو رسم کنید (یا در کنار رسم نقطه ی اول) کد زیر رو اضافه کنید:
var(1,:)=Data(1,:)

یا در خط پنجم تابع (و همچنین در کنار رسم نقطه ی آخر)، کد زیر رو اضافه کنید:
var(end+1,:)=Data(k,:)
مهندس انجام دادم. نشد!
توی خط 31 اضافه کردم.

clc ;
clear ;
close all ;


% global Data
global var Data


Data = xlsread('C:\Users\User\Desktop\Pareto Front\2\natayej1.xlsx',1);
% save Data.mat
% load('Data.mat');
Data=sortrows(Data);
plot(Data(1,1),Data(1,2),'ro','markersize',8) % plot first point
hold on
min_inx_g=find(Data(:,2)==min(Data(:,2)));
plot(Data(min_inx_g,1),Data(min_inx_g,2),'ro','mar kersize',8) % plot min point
min_inx=min_inx_g;
while 1
if min_inx~=length(Data)
[k is_upper]=plot_min_point(1,min_inx);
if is_upper==1 % there are no points above the line.
break
end
min_inx=k;
else
break
end
end
plot(Data(end,1),Data(end,2),'ro','markersize',8) % plot end point
var(1,:)=Data(1,:)
min_inx=min_inx_g;
while 1
if min_inx~=length(Data)
[k is_upper]=plot_min_point(min_inx,length(Data));
if is_upper==1 % there are no points above the line.
break
end
min_inx=k;
else
break
end
end
plot(Data(:,1),Data(:,2),'b*')
axis([0 5 0 3])