فکر کنم اینجور بذارید درست می شه
offer{i}(j) = 2*alpha.*x1+ beta + k .*(D- sum(x1));
فکر کنم اینجور بذارید درست می شه
offer{i}(j) = 2*alpha.*x1+ beta + k .*(D- sum(x1));
??? Subscripted assignment dimension mismatch.
Error in ==> bbbbbbbb at 46
offer{i}(j) = 2*alpha.*x1+ beta + k .*(D- sum(x1));
این یکی
alpha0=[.4,.52,.6];
beta0=[1.2 1.2 1.2];
lambda=1;
D0=[5.3,3.6,1.3];
m0=[1,1,1];
k=.38;
% % -----------------------------
n=[1 2 3];
for i=1:numel(n)
S{i}=nchoosek(n,i);
end
% % -----------------------------
Coalition=1;
profit=[];
jadval = zeros(7,3);
offer={};
for i=1:numel(S)
offerr_array=[];
for j=1:size(S{i},1)
alpha=[];
beta=[];
for kk=1:size(S{i},2)
alpha=[alpha ones(1,m0(S{i}(j,kk))).*alpha0(S{i}(j,kk))];
end
for kk=1:size(S{i},2)
beta=[beta ones(1,m0(S{i}(j,kk))).*beta0(S{i}(j,kk))];
end
m=sum(m0(S{i}(j,:)));
D=sum(D0(S{i}(j,:)));
fun_MG0 = @(q,alpha,beta,k,D) -sum((2*alpha.*q+beta + k .*(D-sum(q))).*q -alpha.*(q).^2-beta.*q);
fun_MG = @(q) fun_MG0(q,alpha,beta,k,D) ;
lb=zeros(1,m); % LowerBound
ub=ones(1,m); % UpperBound
[x1, fx1]=fmincon(fun_MG,ones(1,m)*.99,[],[],[],[],lb,ub);
profit(Coalition)=(-fx1);
Coalition = Coalition + 1;
fprintf('\n Emount of Energy :\n');
disp(x1);
fprintf('\n---------------------------------------\n');
fprintf('\nOffer Without Saticfiction Function :\n');
disp(2*alpha.*x1+ beta);
fprintf('\n---------------------------------------\n');
fprintf('\nOffer With Saticfiction Function :\n');
offerr_array(j)=2*alpha.*x1+ beta + k .*(D- sum(x1));
disp(2*alpha.*x1+ beta + k .*(D- sum(x1)));
fprintf('\n---------------------------------------\n');
end
offer{i} = offerr_array;
end
??? In an assignment A(I) = B, the number of elements in B and
I must be the same.
Error in ==> aaaaaaaaaaaaa at 46
offerr_array(j)=2*alpha.*x1+ beta + k .*(D- sum(x1));
این یکی دیگه فکر کنم مشکل ایجاد نکنه
alpha0=[.4,.52,.6];
beta0=[1.2 1.2 1.2];
lambda=1;
D0=[5.3,3.6,1.3];
m0=[1,1,1];
k=.38;
% % -----------------------------
n=[1 2 3];
for i=1:numel(n)
S{i}=nchoosek(n,i);
end
% % -----------------------------
Coalition=1;
profit=[];
jadval = zeros(7,3);
offer={};
for i=1:numel(S)
offer_cell={};
for j=1:size(S{i},1)
alpha=[];
beta=[];
for kk=1:size(S{i},2)
alpha=[alpha ones(1,m0(S{i}(j,kk))).*alpha0(S{i}(j,kk))];
end
for kk=1:size(S{i},2)
beta=[beta ones(1,m0(S{i}(j,kk))).*beta0(S{i}(j,kk))];
end
m=sum(m0(S{i}(j,:)));
D=sum(D0(S{i}(j,:)));
fun_MG0 = @(q,alpha,beta,k,D) -sum((2*alpha.*q+beta + k .*(D-sum(q))).*q -alpha.*(q).^2-beta.*q);
fun_MG = @(q) fun_MG0(q,alpha,beta,k,D) ;
lb=zeros(1,m); % LowerBound
ub=ones(1,m); % UpperBound
[x1, fx1]=fmincon(fun_MG,ones(1,m)*.99,[],[],[],[],lb,ub);
profit(Coalition)=(-fx1);
Coalition = Coalition + 1;
fprintf('\n Emount of Energy :\n');
disp(x1);
fprintf('\n---------------------------------------\n');
fprintf('\nOffer Without Saticfiction Function :\n');
disp(2*alpha.*x1+ beta);
fprintf('\n---------------------------------------\n');
fprintf('\nOffer With Saticfiction Function :\n');
offer_cell{j}=2*alpha.*x1+ beta + k .*(D- sum(x1));
disp(2*alpha.*x1+ beta + k .*(D- sum(x1)));
fprintf('\n---------------------------------------\n');
end
offer{i} = offer_cell;
end
ممنونم. درست شد ولی سلولهای تو در تو شد.
یکمی فراخونی کردنش سخت شد.
نمیشه همه در یک آرایه قرار بگیرن؟ من دقیقاً مثل همون شکل میخوام.
ظاهرا سایز این offer ها مختلفه که نمیشه داخل آرایه قرار بگیره
خب نمیشه خونه هایی که خالی هست تهی یا صفر باشه؟
من ادامه برنامه کد پایین رو گذاشتم ولی نمیدونم بجای xxx چی باید بذارم؟
m = zeros(7, 3);
for i=1:7
for j=1:3
m(i,j) = xxx;
end
end
الان من نمیدونم محتوای این سلول چیه و چند در چند هست اگه بتونید فقط offer را در فایل mat بذارید و بفرستید ببینم چه شکلی داره
این را امتحان کنید
matcell = cell2mat(offer);
size_col = 0;
size_row = numel(matcell);
for i = 1: size_row
size_col = max(size_col , numel(matcell{i}));
end;
mat = zeros(size_row, size_col);
for i = 1: size_row
mat(i,1:numel(matcell{i})) = matcell{i};
end
این یکی
size_col = 0;
size_row = 0;
for i= 1:numel(offer)
offeri = offer{i};
size_row = size_row + numel(offeri);
size_col = size_col + size(offeri, 2);
end
mat = zeros(size_row, size_col);
k = 1;
for i= 1:numel(offer)
offeri = offer{i};
for j = 1:numel(offeri)
mat(k, 1:numel(offeri{j})) = offeri{j};
k= k + 1;
end
end
??? Error using ==> cell2mat at 55
Cannot support cell arrays containing cell arrays or objects.
Error in ==> aaaaaaaaaaaaa at 53
matcell = cell2mat(offer);
سلام استاد عزیز!
ببخشید من یه فایلی توی اکسل دارم که میخوام ستون C و D رو پیش هم قرار بدم (بدون فاصله) و بعد توی فایل txt ذخیره کنم.
از سمت چپ، اول C قرار بگیره و بعد D.
یعنی بشه CD . بعبارتی یه عدد 25 رقمی بشه. ضمن اینکه توی هر ستون اگه اعداد کمتر از حالت پیش فرض هستن، قبلش صفر قرار بگیره.
میشه این کار رو با متلب انجام داد؟
سلام به شما استاد گرامی
توی خود اکسل هم می شه انجام داد
http://www.sharefile.ir/uploads/1443474459.xls
سلام
فقط مقدار اول رو توی خروجی نشون میده.یعنی (P). ولی S رو نشون نمیده!
function [P , S]=func(r)
P = 2*r*pi;
S = r*r*pi;
fprintf('Mohit = %f & Masahat = %f\n\n',P,S);
end
clc;
clear;
r = input('\n Please Enter Radius : ');
func(r);
سلام
من یه چند جمله ای دارم که درجه جملاتش مرتب نیست. با چه دستوری میتونم از بزرگ به کوچیک مرتبش کنم؟
سلام
چطوری میتونم اعدادی که در m1 ایجاد شده رو ببرم توی txt و در هر سطر، اعداد با سمی کالون جدا بشه؟
m = rand(1,100)
m1 = reshape(m , 10 ,10 )'
بصورت زیر :
0.8147;0.9058;0.1270;0.9134;0.6324;0.0975;0.2785;0 .5469;0.9575;0.9649
چرا csv ؟؟
همون دستوری که گفتین مشکلم حل شد.
حالا خواستم ببینم اگه نخوام با متلب این کار رو انجام بدم ، آیا با خود اکسل میشه این کار رو انجام داد؟
ببینید من یه داده 100 در 1 توی اکسل دارم که میخوام هر کدوم رو 10 تا 10 تا جدا کنم و توی 10 تا سطر بذارم و سپس با سمی کالن جداشون کنم و توی txt قرار بگیره.
با دستوری که توی متلب گفتید انجام دادم و حل شد. حالا میخوام بدونم با اکسل چطوری میتونم این کار رو انجام بدم که دیگه نیاز به متلب نباشه!
سلام
چطوری میشه این معادله دیفرانسیل مرتبه دوم رو توی متلب حل کرد؟ با دستور dsolve یک معادله رو میشه حل کرد؟
از dsolve استفاده نکنید؛ از روشهای عددی استفاده کنید، اونهایی که دستورشون با ode شروع میشه؛ مثل ode23
بعدش هم خود دستگاه معادلات رو به صورت یک mفایل تابع تعریف کنید.
اگه بلد نیستید، بخش 1 و 5 کتاب "شگردهای عددی در پاسخیابی پرسشهای مهدسی با برنامه ریزی MATLAB" رو بخونید.
پ.ن.: به نظرم اینها معادلات دیفرانسیل ارتعاشات آونگ دوگانه باشه
سلام
کسی هست بتونه این رابطه رو توی متلب کد بزنه یا حداقل معادلش رو توی زبانهای دیگه بگه چطوریه؟
من کد رو به این صورت نوشتم ولی انگار دستوری که برای sum نوشتم اشکال داره!
clc;
clear;
close all;
alpha = 0.5;
a = 0;
k = 1;
t = 10;
h = 0.1;
upper_band = round((t-a)/h);
expr = (1./(h.^alpha))*sum((-1)^(k)*binomial(alpha,k)*f(t-k*h), k = 0..upper_band);
f(t) = limit(expr,h,0)
خطایی که میده بصورت زیره:
Error: File: letnikov.m Line: 12 Column: 67
The expression to the left of the equals sign is not a valid target for an
assignment.
من مشکل بالایی رو حل کردم و کدش بصورت زیر شد :
clc;
clear;
close all;
alpha = 0.5;
a = 0;
k = 1;
t = 10;
h = 0.1;
upper_band = round((t-a)/h);
expr = (1./(h.^alpha))*symsum(((-1).^(k))*binomial(alpha,k)*f(t-k*h), k , 0 ,upper_band);
f(t) = limit(expr,h,0)
حالا خطایی که میده برای binomial هست.
بصورت زیر :
Undefined function 'binomial' for input arguments of type 'double'.
Error in letnikov (line 12)
expr = (1./(h.^alpha))*symsum(((-1).^(k))*binomial(alpha,k)*f(t-k*h), k , 0
,upper_band);
خطای قبلی رو هم برطرف کردم و کد جدید بصورت زیر شد:
clc;
clear;
close all;
alpha = 0.5;
a = 0;
k = 1;
t = 10;
h = 0.1;
upper_band = round((t-a)/h);
expr = (1./(h.^alpha))*symsum(((-1).^(k))*nchoosek(alpha,k)*f(t-k*h), k , 0 ,upper_band);
f(t) = limit(expr,h,0)
و الآن خطای جدید روی f هست.
Undefined function 'f' for input arguments of type 'double'.
Error in letnikov (line 12)
expr = (1./(h.^alpha))*symsum(((-1).^(k))*nchoosek(alpha,k)*f(t-k*h), k , 0
,upper_band);
سلام دوستان
کسی میدونه فرق machine learning با deep learning چیه؟؟؟
و اینکه عملکرد کدوم بهتره؟
آخرین ویرایش به وسیله coronaa : پنج شنبه 25 آذر 1395 در 20:17 عصر