کلیدستان

نسخه‌ی کامل: مشکل در حلقه for (متلب - MATLAB)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
با سلام یه مشکلی در مورد کد زیر داشتم ممنون میشم راهنماییم کنید
وقتی کد را اجرا می کنم خطای زیر رو میده

کد پی‌اچ‌پی:
In an assignment A( : ) = Bthe number of elements in A and B must be the same.
Error in Ta (line 13)
p2x1(k)=exp(n/4)*phi


کد :

کد پی‌اچ‌پی:
clc;
clear;
close all;
tmin=-10;
tmax=10;
t=tmin:0.01:tmax;
phi=zeros(size(t));
p=zeros(size(t));
k=0;
for 
n=-24:-1
k
=k+1;
phi((-tmin+n/4)*100+: (-tmin+(n+1)/4)*100+1)=1;
p(k)=exp(n/4)*phi;
end 
سلام.
هنگامی که قصد داریم مقادیر یک ماتریس را در ماتریسی دیگر قرار دهیم (وقتی می گوییم ماتریس، حتی می تواند صرفا یک عنصر باشد)، باید اندازه آن دو با یکدیگر برابر باشد. اما در خط زیر از کد شما، اندازه ماتریس های دو طرف علامت تساوی، یکسان نیست :

کد پی‌اچ‌پی:
p(k)=exp(n/4)*phi

بنابراین آن را باید به صورت زیر تصحیح کنیم :

کد پی‌اچ‌پی:
p(k)=exp(n/4)*phi(k); 

البته تغییری که بنده اعمال کردم، صرفا برای برابر بودن اندازه ماتریس دو طرف تساوی است، اما شما باید ببینید که دقیقا مطابق فرمول های مد نظر شما می باشد یا خیر.
هنگام مواجه با اینگونه خطاها، سعی کنید ماتریس ها را در خروجی نمایش بدهید تا ببینید که اندازه آنها به چه صورت است.

Flower
(۱۳۹۶/۰۴/۱۱, ۰۸:۳۸ ق.ظ)admin نوشته: [ -> ]سلام.
هنگامی که قصد داریم مقادیر یک ماتریس را در ماتریسی دیگر قرار دهیم (وقتی می گوییم ماتریس، حتی می تواند صرفا یک عنصر باشد)، باید اندازه آن دو با یکدیگر برابر باشد. اما در خط زیر از کد شما، اندازه ماتریس های دو طرف علامت تساوی، یکسان نیست :

کد پی‌اچ‌پی:
p(k)=exp(n/4)*phi

بنابراین آن را باید به صورت زیر تصحیح کنیم :

کد پی‌اچ‌پی:
p(k)=exp(n/4)*phi(k); 

البته تغییری که بنده اعمال کردم، صرفا برای برابر بودن اندازه ماتریس دو طرف تساوی است، اما شما باید ببینید که دقیقا مطابق فرمول های مد نظر شما می باشد یا خیر.
هنگام مواجه با اینگونه خطاها، سعی کنید ماتریس ها را در خروجی نمایش بدهید تا ببینید که اندازه آنها به چه صورت است.

Flower

بله مشکل همین بود و حل شد ممنون از راهنماییتون .سپاس فراوان
مرسی از راهنمایی های دوستان.
چون منم این مشکل و داشتم.