Matlab误差时间矩阵尺寸必须一致
我试图在Matlab中创建一个GUI,一旦您在编辑文本区域中输入数据,它就会绘制一个特定的图形。我的问题是,当我尝试使用以下代码绘制图形时:Matlab误差时间矩阵尺寸必须一致,matlab,Matlab,我试图在Matlab中创建一个GUI,一旦您在编辑文本区域中输入数据,它就会绘制一个特定的图形。我的问题是,当我尝试使用以下代码绘制图形时: function pushbutton3_Callback(hObject, eventdata, handles) a = str2num(get(handles.edit1,'string')); b = str2num(get(handles.edit2,'string')); n1 = str2num(get(handles.edi
function pushbutton3_Callback(hObject, eventdata, handles)
a = str2num(get(handles.edit1,'string'));
b = str2num(get(handles.edit2,'string'));
n1 = str2num(get(handles.edit6,'string'));
n2 = str2num(get(handles.edit4,'string'));
lambda = str2num(get(handles.edit5,'string'));
m = ones(1,a)
s = ones(1,b)
f = ones(1,n1)
g = ones(1,n2)
k = ones(1,lambda)
c = k.*(m.*s/f.*g)
i = -3:1:5
figure
p= plot(c,i)
此错误消息不断弹出:错误时间矩阵维度必须一致
。我不知道该怎么办?我真的需要帮助,因为我有一个项目的最后期限,我是无知的!提前谢谢
m = ones(1,a)
s = ones(1,b)
f = ones(1,n1)
g = ones(1,n2)
k = ones(1,lambda)
c = k.*(m.*s/f.*g)
你不是忘了除法运算器上的一个点吗
c = k.*(m.*s./f.*g)
对于错误本身:除非a==b==n1==n2==lambda,否则您创建的向量的维数是不同的,并且您将无法(明智地)将它们相乘,这导致错误时间矩阵维数必须一致
编辑
绘制(x,y)
绘制一条线,将点(x,y)彼此连接起来。如果删除x并仅使用绘图(y)
,则假定x为1:N(N为向量y中的元素数)
如果要绘制值c=lambda*(a*b/n1*n2),则绘图(c)将只绘制该值。我不明白为什么有人告诉你用1来转换向量
当然,如果
lambda=2
a = 3
b = 4
n1 = 5
n2 = 6
那么c=2*(3*4/5*6)=28.8
然后,您需要绘制值28.8
如果这是您想要的,那么可以使用
c = k.*(m.*s./f.*g);
plot(c);
如果参数包含更多值,例如:
lambda= [2 4]
a = [3 5]
b = [4 8]
n1 = [5 4]
n2 = [6 1]
同样的情况也适用,但是c=k.*(m.*s./f.*g)代码>将返回c=[28.8 40]
并且plot(c)
将连接点(1;28.8)和(2;40)
好吗?清楚的然后,主要的问题是,您必须确保用户在每个文本框中输入等量的数字,否则向量之间会出现不匹配,他们将无法计算:[1 4 5].[6 7]
将出错请使用更多的换行符,并通过在前面添加四个空格和include(至少)来格式化代码代码前面有一个空行。您还可以提供一些示例数据,例如,a、b、n1、n2和lambdata的值是多少?它们是gui用户将输入的变量,我必须使用这些值绘制图形。我试图在不将它们转换为向量的情况下绘制它们,但我只得到图形上的点,我需要的是图形而不是点!啊,这是信息!“我的图表”是什么意思?存储在矩阵/向量/中的一组数据值。。。或者,您必须在用户指定的点上计算函数。。a是干什么用的?Bn1?窗口的x极限?评估的要点是什么?你能告诉用户必须输入什么(分别针对每个变量)以及它如何符合你的“我想用这些值绘制我的图形”吗?我想绘制的方程是:c=lambda*(a*b/n1*n2)!在gui中,我有多个编辑文本区域,用户在其中输入不同的值,即lambda、a、b、n1、n2!问题是,当我直接使用字符串值来绘制图形时,我只得到了图形上的不同点,但有人告诉我,我必须将这些字符串值转换为1的向量才能绘制图形!但当我发布错误信息时,错误信息不断弹出,我无法策划任何事情,我真的需要在本周四之前完成这个项目!那你怎么想呢?那我怎么才能画出我的图呢?除非我把数据转换成向量,否则图只是图上的一个值。首先:你想画什么,我们可以看到你试着用plot(c,I)
,但没有任何其他信息,我们也不知道,只能猜测你到底想要什么。在这里输入一些代码,让我们看看我们的水晶球,找到解决方案,这并不能解决问题。我想画的方程是:c=lambda*(a*b/n1*n2)!在gui中,我有多个编辑文本区域,用户在其中输入不同的值,即lambda、a、b、n1、n2!问题是,当我直接使用字符串值来绘制图形时,我只得到了图形上的不同点,但有人告诉我,我必须将这些字符串值转换为1的向量才能绘制图形!但当我发布时,错误信息不断弹出