خطای Matrix dimensions must agree در متلب :
خطا Matrix dimensions must agree زمانی نمایش داده می شود که قصد داشته ایم عملیاتی را بر روی دو ماتریس غیر هم اندازه انجام بدهیم، اما آن عملیات نیازمند آن بوده است که اندازه دو ماتریس، برابر باشد.
به مثال زیر توجه کنید :
مثال :
close all
clcA=2;
B=[3 5];C=A/B
نتیجه :
Matrix dimensions must agree.Error in ==> program at 8
C=A/B
دو روش را برای درست عمل کردن کد بالا، معرفی می کنیم :
روش اول (روش ساده تر) : استفاده از علامت نقطه که بیانگر این است که عملگر بعد از آن، برای تک تک عناصر ماتریس، به کار رود.
کدها را به صورت زیر می نویسیم :
close all
clcA=2;
B=[3 5];C=A./B
نتیجه :
C =
0.6667 0.4000
روش دوم : استفاده از حلقه for
کدها را به صورت زیر می نویسیم :
close all
clcA=2;
B=[3 5];for nn=1:2
C(nn)=A/B(nn);
end
C
نتیجه :
C =
0.6667 0.4000
خطاهای به شکل کلی Undefined function or method ‘…’ for input arguments of type ‘###’. در متلب :
در این مبحث قصد داریم علت به وجود آمدن یک پیام خطا را در نرم افزار متلب توضیح بدهم که به صورت کلی زیر می باشد :
که در عبارت فوق، به جای علامت های … ، نام یک تابع و به جای علامت های ### ، نام یک نوع متغیر نوشته می شود. به عنوان مثال :
معمولا این پیام خطا به دو دلیل به وجود می آید :
اول اینکه ممکن است که تابع (function) مورد نظر درون مسیر (path) یا مسیرهای تعریف شده برای نرم افزار متلب نباشد و بنابراین راه حل این است که فولدر حاوی آن تابع را به مسیرها اضافه کنید یا current folder را به آدرس آن فولدر حاوی تابع، تغییر دهید. در این مورد، بد نیست نگاهی به کلید زیر بیندازید :
کلید شماره 177دوم اینکه ممکن است آن تابع یک تابع داخلی نرم افزار متلب باشد و به دلیل قدیمی بودن شماره نرم افزار متلب شما، این تابع را نداشته باشید. توصیه این است که یک شماره جدید نرم افزار متلب را نصب کنید، اما اگه عجله دارید می توانید از دوستی که یک شماره جدید متلب را دارد بخواهید که فایل مربوط به آن تابع داخلی را برایتان ارسال کند. مثلا فرض کنید که شما تابع syms را نداشته باشید، دوست شما باید عبارت زیر را در نرم افزار متلب خود اجرا کند تا مسیر فایل مربوط به تابع syms نمایش داده شود :
مثلا نتیجه می تواند به صورت زیر باشد :
بنابراین سپس دوست شما این فایل با نام syms.m را برایتان ارسال می کند و همچنین آدرس را هم به شما می گوید تا بدانید که فایل را در چه بخشی از فولدر محل نصب نرم افزار متلب باید کپی کنید.
Index exceeds matrix dimensions.
Error in (line 8)
txt2 = txt(2:end,3);
نمیدونم چرا این خطا رو میده. لطفا کمکم کنید.ممنون
[filename, pathname] = uigetfile(‘*.xlsx’, ‘Select file for load’);
Fileselect = fullfile(pathname, filename);
[num, txt] = xlsread(Fileselect);
[r, c] = size(num);
dif = num(:,2) – num(:,1);
txt2 = txt(2:end,3);
i = 1 ;
for n=1:r-1
if strcmp(txt2(i),txt2(i+1)) == 1
if dif(i)<= dif(i+1)
num(i,:) = [];
txt(i+1,:) = [];
txt2(i,:) = [];
dif(i,:) = [];
else
num(i+1,:) = [];
txt(i+2,:) = [];
txt2(i+1,:) = [];
dif(i+1,:) = [];
end
i = i-1;
end
i = i+1;
end
newname = strcat('converted ',filename);
nFileselect = fullfile(pathname, newname);
xlswrite(nFileselect,txt(1,:))
xlswrite(nFileselect,num,1,'A2')
xlswrite(nFileselect,txt(2:end,3),1,'C2')
سلام عکس ارور رو بفرستید لطفا
function f = fanning_friction_factor(Re)
% combined, continuous correlation for the fanning friction factor.
% the alpha parameter is chosen to provide the desired smoothness.
% The transition region is about +- 4*alpha. The value 450 was
% selected to reasonably match the shape of the correlation
% function provided by Morrison (see last section of this file)
sigma = 1./(1+exp(-(Re – 3000)/450));
f = (1-sigma).*fF_laminar(Re) + sigma.*fF_turbulent(Re);
end
Re = linspace(500,10000);
f = fanning_friction_factor(Re);
figure(1);
plot(Re,f)
xlabel(‘Re’)
ylabel(‘f_F’)
legend ‘laminar’ ‘turbulent’ ‘smooth transition’
رور زیر رومیده که نمیدونم چیه
>> fanning_friction_factor(Re)
Undefined function or variable ‘Re’.
ا
قبل از این کد باید کد دیگری ران بشه احتمالا یا یک فایل مجزای دیگری در کنار این ام فایل باید باشه
اگر بخواهیم آرور بار یک شیب خطی در متلب دیده شود چطور عمل می شود
سلام من چطور میتونم سه تابع سیگما با کران های مختلف رو تو متلب بنویسم.اندیساش سه تایی میشه چکار میشه کرد
Error using Main (line 15)
Error due to multiple causes.
Caused by:
Error using Main (line 15)
Invalid setting for output port dimensions of ‘VSWT_NSSFE/Variable Speed Wind Turbine/Mux1’. The dimensions are
being set to 1. This is not valid because the total number of input and output elements are not the same
Error using Main (line 15)
Error in port widths or dimensions. Input port 1 of ‘VSWT_NSSFE/Variable Speed Wind Turbine/Ta calculator’ is a one
dimensional vector with 1 elements.
باسلام من موقه اجرای فایلم این ارور رو مشاهده میکنم ولی نمیدونم مشکلش چیه.خطا هم روی قسمت mux سیمولینک هس که نمیدونم چیکارش کنم. ممنون میشم راهنماییم کنین.باتشکر از لطفتون
سلام خسته نباشید
برنامه ام اروری به این صورت میده
Index exceeds matrix dimensions.
Error in nporoje (line 101)
x=stat2(i).Image;
که قادر به رفعش نیستم و برنامم جواب نمیده ممنون میشم راهنماییم کنید
ابعدا ماتریستان به اندازه مورد نظر نیست
مثلا اگر باید 2*14 باشد 2*13 است یا هر اندازه دیگری
برای بررسی بیشتر برنامه را اپلود کرده در اینجا قرار دهید تا مرتفع گردد
%% biron keshidan karakterha
stat1 = regionprops(bwlabel(pz,4),’Area’,’Image’);
index1 = (find([stat1.Area] == max([stat1.Area])));
maxarea =[stat1(index1).Area];
pzc=bwareaopen(pz,maxarea-200);
%%
% nf1=temp.*cx{1,i};
% nf2=sum(sum(nf1));
% nf(j)=nf2/(sum(sum(temp)));
% mx=max(nf(j));
%%
stat2=regionprops(pzc,’Area’,’BoundingBox’,’Image’,’Orientation’,’Centroid’);
cx=cell(1,8);
for i=1:8
x=stat2(i).Image;
rx=imresize(x, [60 30]);
%figure,imshow(rx)
cx{1,i}=rx;
fx=mat2gray(cx{1,1});
imshow(cx{1,2});
imwrite(rx,[‘D:\poroje\ans\javab’ num2str(i) ‘.jpg’]);% ADDRESS NEVESHTAN KARAKTER HA
end
تا قبل از این قسمت برنامه به راحتی اجرا میشود ولی در این قسمت به ارور برخورد میکنم
خوب الان درایو دی شما در اختیار من نیست که …
باید کل فایلهاتون رو اپلود کنید و برای من بفرستید بررسیش کنم اینجوری ران نمیشه
سلام من یه برنامه دارم که موقع اجرا این پیام میاد . همه ی گزینه هارم امتحان کردم اما برنامه ران نمیشه لطفا کمک کنید . مرسی
matlab editor
matlab can not run this file beacuse
c:\…lab\r2010a\toolbox\matlab….
change the matlab current or add its folder to the matlab path
change folder \add path\cancel\help
مطابق شکل آدرس رو عوض کنید و روی دسکتاپ قرار بدید مشکلتون حل میشه
http://s7.picofile.com/file/8265824718/1111111.png
مطابق شکل آدرس رو عوض کنید و روی دسکتاپ قرار بدید مشکلتون حل میشه همین
http://s7.picofile.com/file/8265824718/1111111.png
سلام ممنون که جوابمو دادین اما
متلب من 2010همچین قسمتی نداره !مهندس لطفا کمک کنین خیلی ممنون
با سلام برید به قسمت current folder اون رو عوض کنید درست میشه
سلام خدا قوت
ببخشید برنامه ام خطایی باعنوان:
Error using evalfismex
Illegal parameters in fisGaussianMF() –> sigma =
0
Error in evalfis (line 84)
[output,IRR,ORR,ARR] = evalfismex(input, fis,
numofpoints);
Error in ANFIS (line 32)
TestOut=evalfis(rr,fis2);
میده که هر کاریش میکنم جواب نمیده میشه راهنماییم کنید آخه آخر پایان نامه امه که یهو توی این قسمتش موندم
ممنون میشم اگه راهنماییم کنید
باتشکر
سلام هر چی ک هست از دستور evalfismex هستش ک در خط 84 ازش استفاده کردید برای چی از این دستور استفاده کردید؟آیا ساختار این دستور درست هستش و همه ورودی های این دستور به درستی وارد شدند؟