你有的线太长有的线太短,差别太大。
clc;clear all
L=28563;
R1=11307;
R2=42;
R3=6804;
R4=83;
R5=1933;
R6=6633;
R8=403;
A=pi957/1800;
B=pi/6;
D=pi869/1800;
E=pi2/9;
F=pi8/9;
I=pi11/18;
Q=pi/4;
S=pi/4;
J=7pi/1800;
d=sqrt(R1^2+R2^2-2R1R2cos(J));
P=acos((R1^2+d^2-R2^2)/2dR1);
N=acos((R4^2+d^2-R3^2)/2dR4);
l=N+P;
H=Q+B+I-l-pi/2;
Z=pi+H-F;
x(7)=0;
y(7)=400;
x(1)=Lsin(Q);
y(1)=y(7)-Lcos(Q);
x(2)=x(1)+R2cos(S+A);
y(2)=y(1)+R2sin(S+A);
x(3)=R5sin(Q+B);
y(3)=y(7)-R5cos(Q+B);
x(4)=x(3)-R4cos(H);
y(4)=y(3)-R4sin(H);
x(5)=x(3)+R6cos(Z);
y(5)=y(3)+R6sin(Z);
x(6)=R8sin(D);
y(6)=y(7)-R8cos(D);
%x=abs(x);y=abs(y);
figure(1)%其中五根十分短的线
plot([x(1) x(2)],[y(1) y(2)]);
hold on;
plot([x(1) x(3)],[y(1) y(3)]);
plot([x(1) x(7)],[y(1) y(7)]);
%plot([x(3) x(5)],[y(3) y(5)]);
plot([x(3) x(7)],[y(3) y(7)]);
%plot([x(3) x(4)],[y(3) y(4)]);
%plot([x(2) x(4)],[y(2) y(4)]);
plot([x(7) x(6)],[y(7) y(6)]);
%plot([x(5) x(6)],[y(5) y(6)]);
figure(2)%剩下四根非常长的线
hold on
plot([x(1) x(2)],[y(1) y(2)]);hold on
plot([x(1) x(3)],[y(1) y(3)]);
plot([x(1) x(7)],[y(1) y(7)]);
plot([x(3) x(5)],[y(3) y(5)]);
plot([x(3) x(7)],[y(3) y(7)]);
plot([x(3) x(4)],[y(3) y(4)]);
plot([x(2) x(4)],[y(2) y(4)]);
plot([x(7) x(6)],[y(7) y(6)]);
plot([x(5) x(6)],[y(5) y(6)]);
%出来的图形不对
相差几个数量级
语法规则如下:
还有其他的continue,break语句与c语言类似,而input()的用法与python类似。
此外c语言中的”!“在matlab中用”~“
在matlab中对于自带的函数可以直接调用,若是自写函数,如冒泡排序算法
新建脚本后,保存为BubbleSortm, 注意文件名要与函数名一致
在调用的时候,只用新建脚本(与函数文件在同一路径下),即可直接调用
A ~= B
得到的是一个布尔矩阵(注意,不是一个数),每个值是0或1对应着该处元素是否相等。这样导致if A~=B 实际上只比较了A,B两个矩阵中的第一个数是否相等。
矩阵比较应该用isequal函数:
if isequal(A, B)你肯定没用过imwrite 你随便这么imwrite试试就会发现全是白色 因为你没转换类型
倒数第2行加上A=uint8(A);
顺便说句A=imread('jiuzaigoubmp');A=im2double(A);
可以改写成OriName='jiuzaigoubmp';A=double(imread(OriName));
最后改成 DesName='tupianjpg';imwrite(A,DesName);更标准些
以上就是关于MATLAB程序问题全部的内容,包括:MATLAB程序问题、matlab程序设计、matlab 程序 问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)