精华内容
下载资源
问答
  • matlab函数记录-PartII

    2020-11-26 05:47:24
    printf("%d\n", str2num(lines{1}) + str2num(lines{2})); end catch end 因此,在下列例题中: 有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子

    ==1、==多组数据同时输入,需要借助如下语句结构:

    try
        while 1        
        	line = input('', 's');        
        	lines = strsplit(line);       
        	printf("%d\n", str2num(lines{1}) + str2num(lines{2}));
        end
    catch
    end

    因此,在下列例题中:
    有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?
    【本题有多组数据。】
    多组数据的暗示为需要借助上述语句来完成多次输入,因此代码可以如下写出:

    clear
    try
    while 1
      M = input('');
      newRabit = [1,1];
      TmptotalNum = newRabit;
      for i=1:M
          N = size(TmptotalNum,1);
          for n=1:N         %at the begining of each new month, birth of new rabbits
              if TmptotalNum(n,2)>=3
                  TmptotalNum = [TmptotalNum;newRabit];
              end
          end
          TmptotalNum(:,2) = TmptotalNum(:,2) + 1;%the next month age of each rabbit
      end
      fprintf('%d\n',size(TmptotalNum,1));
    end
    catch
    end

    The process that rabbits have birth to new rabbit can be describe as another pieces:
    repmat(A, m, 1);复制向量A成为矩阵m行一列的矩阵

    TmptotalNum = [TmptotalNum;repmat(newRabit,sum(TmptotalNum(:,2)>=3),1)];

    Of course, there is a genious way to solve this problem:

    try
    while 1
      M = input('');
      f(1) = 1;
      f(2) = 1;
      if M>=3
        for i=3:M
          f(i) = f(i-1) + f(i-2);
        end
      end
      fprintf('%d\n',f(M));
      end
    catch
    end

    2、进制转换
    进制转换的相关函数:
    hex2dec(‘1f’): 16进制转换为10进制
    base2dec(‘55’):8进制转换为10进制
    bin2dec(‘1101’):2进制转换为10进制
    dec2bin(22):十进制转换为2进制:注意十进制转换不需要加引号
    round():四舍五入
    floor(): 向下取整
    ceil(): 向上取整
    mod(a,b): a/b的余数
    例题
    写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。

    clear
    try
    while 1
        line = input('', 's');
        lines = strsplit(line,'0x');
        fprintf("%d\n", hex2dec(lines(2)));
    end
    catch
    end

    3、字符串排序
    某一向量中第一次出现某一元素的位置:

    Pos = sum(cumsum(A=='1',2)==0,2)+1

    值得注意的是,
    sortrows(A,[1,2,3]); 对A字符矩阵按列排序,先按第一行排序,再按第二行排序,最后按第三行排序!功能超强!
    例题:
    给定n个字符串,请对n个字符串按照字典序排列。

    clear
    N = input('');
    OutputIndex = [1,N];
    DataMatrix = ones(N,100);%string
    LM = zeros(1,N);%length of each string
    for i=1:N
        InputData = input('','s');
        LM(i) = length(InputData);
        for l=1:LM(i)
            DataMatrix(i,l) = InputData(l);
        end
    end
    %% ----start to sort------%
    TmpIndex = 1:N;
    [TmpData,TmpInd] = sortrows(DataMatrix,[1:max(LM)]);
    NewLM = LM(TmpInd);
    for i=1:N
        fprintf('%s\n',TmpData(i,1:NewLM(i)));
    end

    4、字符串比较与判断
    需要注意:字符串中引号只有一种,即 ‘"‘
    unique(A): 找出向量A中存在的类型元素,即去掉重复的部分,升序排列输出
    unique(A,‘stable’)或者unique(A,‘first’):找出向量A中存在的类型元素,即去掉重复的部分,不排序
    C=setdiff(A,B): A集合中元素减去B集合中元素(在A中不在B中的元素),返回剩下元素的升序排列效果,注意C中不包含重复元素
    intersect(A,B): 寻找共有元素;返回交集向量
    intersect(A,B,‘rows’): 以矩阵的每一行作为向量进行求取交集, 并返回A和B所共有的行。
    strcmp(‘stnngl’,‘strmg2’):比较两个字符串是否相同,返回一个逻辑值;
    strncmp(‘string1’,‘string2’,n):比较前n个字符串是否相同,返回一个逻辑值;
    strmatch(‘substr’, S):返回S中以substr开始的字符串所在的行号;
    findstr(‘str1’,‘str2’): 在长字符串中查找短的字符串,并返回字符串中短字符串开始的所有位置。子串和母串在括号中既可在前也可在后
    strtok(‘string’,d):此函数返回由字符串d作为分割的字符串string的第1部分,也就是说,返回字符串strmg中第1个字符d之前的所有字符。
    isletter(S): 返回与S同样维数的逻辑矩阵,如果S中的元素为字母,则在逻辑矩阵的相应位置上输出1,否则输出0.
    isspace(S): 此函数与isletter(S)用法相同,在为空格的相应位置上输出1,否则输出0
    名不同名字来赋值时可以用下列函数:
    产生命名为a1~a9的变量

    for i=1:9
    eval(['a' char(abs('0')+i) '=' char(abs('0')+i)])
    end

    求a中连续b元素的最大长度

    max(cellfun(@numel, regexp(char((a == b) + '0'), '1+', 'match')))

    例题:给定两个只包含小写字母的字符串,计算两个字符串的最大公共子串的长度。 注:子串的定义指一个字符串删掉其部分前缀和后缀(也可以不删)后形成的字符串。

    clear
    InputSgn1 = input('','s');
    InputSgn2 = input('','s');
    L1 = length(InputSgn1);
    L2 = length(InputSgn2);
    if L1>=L2
        maxL = L1;
        LongSgn = InputSgn1;
        minL = L2;
        ShortSgn = InputSgn2;
    else
        maxL = L2;
        LongSgn = InputSgn2;
        minL = L1;
        ShortSgn = InputSgn1;
    end
    Con = zeros(minL,2);
    Con(:,1) = ShortSgn';
    ConL = zeros(1,maxL+minL-1);
    %% 以循环的方式放入一个两列的数组中按行逐个对比,每次都记录最大连续相同字节
    for i=-minL+2:maxL
        if i<=0
            Con(-i+2:end,2) = LongSgn(1:minL-1+i);
        elseif maxL-i+1>=minL
            Con(:,2) = LongSgn(i:i+minL-1);
        else
            Con(1:maxL-i+1,2) = LongSgn(i:end);
        end
        tmp = (Con(:,1)==Con(:,2))';
        if sum(tmp)>0
            ConL(minL-1+i) = max(cellfun(@numel, regexp(char((tmp == 1) + '0'), '1+', 'match')));
        end
    end
    fprintf('%d\n',max(ConL));

    5、大小写与字符串数组的定义
    lower():输出一个字符的小写
    upper():输出一个字符的大写
    定义字符串时,不要用[],而应该用’’,例如

    str1 = '';

    eval([]): 将括号内的字符串视为语句并运行,但是值得注意的是改语句必须与命令行中的语句格式保持一致,这样才能保证语句能够正常执行。
    举例:
    输入一个表达式(用字符串表示),求这个表达式的值。 保证字符串中的有效字符包括[‘0’-‘9’],‘+’,‘-’, ‘*’,‘/’ ,‘(’, ‘)’,‘[’, ‘]’,‘{’ ,‘}’。且表达式一定合法。
    基本想法:将不合命令行规范的括号替换为圆括号,直接将字符串转为命令运行

    clear
    InputStr = input('','s');
    InputStr(InputStr=='['|InputStr=='{') = '(';
    InputStr(InputStr==']' | InputStr=='}') = ')';
    Data = eval([InputStr]);
    disp(num2str(Data));
    展开全文
  • [求助]关于matlab的struct函数 我在做hough变换检测直线,在function lines=houghlines(f,theta,rho,rr,cc,fillgap,minlength)%HOUGHLINES Extract line segments based on the Hough transform.% LINES=HOUGHLINES...

    icon1.gif [求助]关于matlab的struct函数

    我在做hough变换检测直线,在

    function lines=houghlines(f,theta,rho,rr,cc,fillgap,minlength)

    %HOUGHLINES Extract line segments based on the Hough transform.

    % LINES=HOUGHLINES(F,THETA,RHO,RR,CC,FILLGAP,MINLENGTH)

    % extracts line segments in the image F associated with particular

    % bins in a Hough. Vectors RR and CC specify the rows and columns

    % of the Hough transform bins to use in searching for line

    % segments. If HOUGHLINES finds two line segments associated with

    % the same Hough transform bin that are separated by less than

    % FILLGAP pixels, HOUGHLINES merges them into a single line

    % segment. FILLGAP defaults to 20 if omitted. Merged line

    % segments less than MINLENGTH pixels long are discarded.

    % MINLENGTH defaults to 40 if omitted.

    %

    % LINES is a structure array whose length equals the number of

    % merged line segments found. Each element of the structure array

    % has these fields:

    %

    % point1 End-point of the line segment; two-element vector

    % point2 End-point of the line segment; two-element vector

    % length Distance between point1 and point2

    % theta Angle (in degrees) of the Hough transform bin

    % rho Rho-axis position of the Hough transform bin

    if nargin < 6

    fillgap=20;

    end

    if nargin < 7

    minlength=40;

    end

    numlines=0; lines=struct;

    for k=1:length(rr)

    rbin=rr(k);cbin=cc(k);

    % Get all pixels associated with Hough transform cell.

    [r,c]=houghpixels(f,theta,rho,rbin,cbin);

    if isempty(r)

    continue

    end

    % Rotate the pixels locations about(1,1) so that they lie

    % approximately along a vertical line.

    omega=(90-theta(cbin))*pi/180;

    T=[cos(omega) sin(omega); -sin(omega) cos(omega)];

    xy=[r-1 c-1]*T;

    x=sort(xy(:,1));

    % Find the gaps larger than the threshold.

    diff_x=[diff(x);inf];

    idx=[0;find(diff_x>fillgap)];

    for p=1:length(idx)-1

    x1=x(idx(p)+1); x2=x(idx(p+1));

    linelength=x2-x1;

    if linelength >=minlength

    point1=[x1 rho(rbin)]; point2=[x2 rho(rbin)];

    % Rotate the end_point location back to the original

    % angle.

    Tinv=inv(T);

    point1=point1*Tinv; point2=point2*Tinv;

    numlines=numlines+1;

    lines(numlines).point1=point1+1;

    lines(numlines).point2=point2+1;

    lines(numlines).length=length+1;

    lines(numlines).theta=theta(cbin);

    lines(numlines).rho=rho(rbin);

    end

    end

    end

    中遇到一个问题,在matlab命令界面输入lines=houghlines(f,theta,rho,r,c)的时候

    提示的是lines是一个1x1的没有fields的struct。我觉得应该是上面代码红色的那个句子

    出了问题,但是我看了help以后还是不知道怎么修改,麻烦哪位帮帮我,急用啊!!

    非常感谢!!!!!!!

    展开全文
  • 知识前言一、self-definition function for ploting simulation results二、points with lines总结 前言 一、self-definition function for ploting simulation results figure('Name','2-D','color',[1 1 1],'...

    Self-Definition Function For Plotting Simulation Results



    一、Parameters Setting

    POINT_NUMBER = 10;  
    LINE_INTERVAL = 50;
    FONT_SIZE = 8.0;
    FIGURE_SIZE = [7 7 7 7]; 
    COORDINATE_LIMITATION = [0, 1000, 0, 500] ;  % [x_Starting, x_ending, y_Starting, y_ending]
    FIGURE_RATIO = [0.065 0.10 0.85 0.85];
    LINE_WIDTH = 1.5;
    MARKER_SIZE = 5;
    

    二、Self-definition Function

    代码如下(示例):

    function [  ] = plotSimulationResults(  DataArray1,DataArray2,... %DataArray3,DataArray4,
                                            POINT_NUMBER, LINE_INTERVAL,...
                                            FONT_SIZE, FIGURE_SIZE, COORDINATE_LIMITATION, FIGURE_RATIO, LINE_WIDTH, MARKER_SIZE  )
    
    figure('Name','The compartion of xxx','color',[1 1 1]);
    set(gca,'fontsize',FONT_SIZE);                 %set the font size
    set(gcf,'Units','centimeter','Position',FIGURE_SIZE); % FIGURE_SIZE = [8, 8, 8, 8] 
    axis(COORDINATE_LIMITATION); %[x_begining, x_ending, y_begining, y_ending]
    set(gca,'Position',FIGURE_RATIO);       % for removing white margin 
    grid;
    xlabel('x (times)');
    ylabel('y (%)');
    hold on;
    
    RoundNumber = length(DataArray1);
    
    DataArray1 = [0,DataArray1];
    DataArray2 = [0,DataArray2];
    % DataArray3 = [0,DataArray3];
    % DataArray4 = [0,DataArray4];
    
    pointInterval = RoundNumber./POINT_NUMBER;
    pointBeginPoint = 0;
    lineBeginPoint = 0;
    
    for index =  pointBeginPoint:pointInterval:RoundNumber 
        plot( index, DataArray1( index+1 ),'Color','blue','Marker','x','MarkerFaceColor','blue','MarkerSize',MARKER_SIZE);
        plot( index, DataArray2( index+1 ),'Color','red','Marker','<','MarkerFaceColor','red','MarkerSize',MARKER_SIZE);
    %     plot( index, DataArray3( index+1 ),'Color','green','Marker','d','MarkerFaceColor','green','MarkerSize',MARKER_SIZE);
    %     plot( index, DataArray4( index+1 ),'Color','black','Marker','o','MarkerFaceColor','black','MarkerSize',MARKER_SIZE);
        hold on;
    end
    
    plot( lineBeginPoint:LINE_INTERVAL:RoundNumber,DataArray1(1:LINE_INTERVAL:(RoundNumber+1)),'Color','blue ','LineStyle','-','LineWidth',LINE_WIDTH); % The LineStyle parameter where you can set to '-', '--', ':', or ':.'  
    hold on;
    plot( lineBeginPoint:LINE_INTERVAL:RoundNumber,CentralizedCoverageRadioArray(1:LINE_INTERVAL:(RoundNumber+1)),'Color','red ','LineStyle','-','LineWidth',LINE_WIDTH);
    hold on;
    % plot( lineBeginPoint:lineInterval:RoundNumber,DataArray3(1:lineInterval:(RoundNumber+1)),'Color','green ','LineStyle','-','LineWidth',LINE_WIDTH);
    % hold on;
    % plot( lineBeginPoint:lineInterval:RoundNumber,DataArray4(1:lineInterval:(RoundNumber+1)),'Color','black ','LineStyle','-','LineWidth',LINE_WIDTH);
    % hold on;
    
    legend_ = legend('Algorithm1','Algorithm2','Algorithm3','Algorithm4');  % set the name for the legend
    set(legend_,'Location','NorthWest');   % set the location of the legend,and the paramecter where you can set to NorthWest, NorthEast, SouthWest, or SouthEast.
    
    end
    

    展开全文
  • matlab的Reshape函数实现

    2017-07-06 21:18:58
    二维数组转三维/** * Created by zangtt on 17-7-4. */ class Reshape() { def fun(image: Array[Array[Double]], no_lines: Int, no_cols: Int, no_bands: Int) = ... var result = Array.ofDim[Double](no_lines,n

    二维数组转三维

    /**
      * Created by zangtt on 17-7-4.
      */
    class Reshape() {
      def fun(image: Array[Array[Double]], no_lines: Int, no_cols: Int, no_bands: Int) = {
        var result = Array.ofDim[Double](no_lines,no_cols,no_bands)
        for (k <- 0 to (no_bands - 1)) {
          for (j <- 0 to (no_cols - 1)) {
            for (i <- 0 to (no_lines - 1)) {
              result(i)(j)(k) = image(i + j * 610)(k)
            }
          }
        }
        result
      }
    }
    
    展开全文
  • Matlab--inputdlg函数:输入对话框

    千次阅读 2019-05-15 21:07:24
    Matlab--inputdlg函数:输入对话框 格式: answer = inputdlg(prompt,dlg_title,num_lines,defAns) prompt---------提示字符串 dlg_title--------对话框名称 num_lines------显示的行数 defAns----------...
  • axis tight%Set the axis limits to equal the range of the dataaxis squareaxis 'auto x'%x轴坐标上下限自动调整axis off%Plot a surface without displaying the axes lines and background.set(gca,'Visible','...
  • matlab】常用函数importdata

    千次阅读 2016-07-14 11:02:00
    importdata 没有头文件并且全是数字用load,有头文件并且数据类型统一用importdata。 查看帮助用 help load help importdata data.txt内容如下: a1 a2 a3 b1 b2 b3 1 2 3 4 4 4 ...headerlines...
  • 很实用的时频分析工具箱,包括短时傅里叶正反变换等,很好,很强大哦~~分享给大家,包括以下函数的源代码: % sigmerge - Add two signals with given energy ratio in dB. % % Choice of the Instantaneous ...
  • 做安卓图像处理相关开发的时候,实现的在图片上画线的功能,类似matlab上的plot()函数,还有hold on。做安卓图像处理的同学一定会喜欢的。 When do Android image processing development, draw lines on the ...
  • 关于matlab中textread今天打算跑下程序,突然发现,真的很烂,不会读入数据,简单的Iris.txt一上午都没读进去,在此对matlab中的textread函数做下总结,textscan函数待续。笔者在此基础上进行运行,修改得到以下内容...
  • matlab 对话框弹出

    2019-09-29 20:01:10
    msgbox('你要显示的内容', '对话框标题...matlab中inputdlg函数用户交互中使用方法如下: answer = inputdlg(prompt,dlg_title,num_lines,defAns,options) prompt:输入文本框的标签 dlg_title:对话框的标题 nu...
  • 二、Textread函数:按格式读取TXT文本文件中的内容,函数格式textread(filename,formate,N,’headerlines’,M),其中filename代表读取的文件名,formate代表读取的格式,如“%d”、“%f”等,N代表读取多少行,...
  • Matlab弹出对话框

    2013-04-24 18:29:00
    msgbox('你要显示的内容', '...matlab中inputdlg函数用户交互中使用方法如下: answer = inputdlg(prompt,dlg_title,num_lines,defAns,options) prompt:输入文本框的标签 dlg_title:对话框的标题 num_lin...
  • matlab 图像颜色的显示

    千次阅读 2013-10-15 10:55:46
    matlab figure中的图像根据每点的pixel值可以显示为rgb色彩的图像, 但是要在colorbar中显示,则需要将图像的rgb值通过函数映射, 比如:jet hsv hot cool spring summer autumn winter gray bone  copper pink...
  • %check_callback.m 文件查看图形函数 function check_callback) % 查看原始线段图形回调函数 %lines 矩阵共四列每一列的含义如下 % 端点 A x 坐标 端点 A y 坐标 端点 B x 坐标 端点 B y 坐标 % lin
  • 要检索原始索引,您必须将两个条件的索引的内存保留在x和y上(我将其放入数组cX和cY中),然后使用函数ind2sub.NB: your code is a little bit confusing since x stands for the linesand y for the columns, but I ...
  • MATLAB弹出对话框的使用

    万次阅读 2014-05-21 14:04:53
    Matlab 弹出对话框使用 msgbox('你要显示的内容', '对话框标题');...matlab中inputdlg函数用户交互中使用方法如下: answer = inputdlg(prompt,dlg_title,num_lines,defAns,options) prompt:输入文
  • matlab读取文本文件函数。 1、load——适合读取纯数据文本; 2、importdata——只读取数据,自动省略数据格式前后的字符,超大文件不适合; 3、textread、textscan——适合读取行列规整的文本,会存到元胞中,可...
  • matlab读取文本文件的几种函数: 1、load——适合读取纯数据文本; 2、importdata——只读取数据,自动省略数据格式前后的字符,超大文件不适合; 3、textread、textscan——适合读取行列规整的文本,会存到元胞中...
  • Matlab 关于plot设置(暴力版)

    万次阅读 2013-08-23 09:26:18
    以前Matlab作图时,要设置好多的变量, 如标题,x轴,y轴间隔, 字体,线条等等特性的设置。这些在写的时候比较麻烦, 今天写了一个集成的函数,直接包含了一个基本的特性,只要用结构体包含进来就可以了。非常的...
  • 实现函数:function lines=line_extract(I_ORG) 实现功能:对输入真彩图像进行直线提取 训练SVM [xsup_si,w_si,w0_si,pos_si,tps_si,alpha_si] = svmclass(Xapp,yapp,C,lambda,kernel,kerneloption,1); 测试 [Xtest]=...
  • MATLAB模式识别工具箱(函数)来对某些指标(如空气质量、水质量、个人业绩等)进行分类、评估、预测,分为三步: 数据准备训练和评估预测 下面我来一步一步讲解,先谈数据的准备: 确保输入数据(包括训练...
  • MATLAB模式识别工具箱(函数)来对某些指标(如空气质量、水质量、个人业绩等)进行分类、评估、预测,分为三步: 数据准备训练和评估预测 下面我来一步一步讲解,先谈数据的准备: 确保输入数据(包括训练...
  • MATLAB模式识别工具箱(函数)来对某些指标(如空气质量、水质量、个人业绩等)进行分类、评估、预测,分为三步: 数据准备训练和评估预测 下面我来一步一步讲解,先谈数据的准备: 确保输入数据(包括训练...
  • MATLAB模式识别工具箱(函数)来对某些指标(如空气质量、水质量、个人业绩等)进行分类、评估、预测,分为三步: 数据准备训练和评估预测 下面我来一步一步讲解,先谈数据的准备: 确保输入数据(包括训练...
  • http://cn.mathworks.com/matlabcentral/mlc-downloads/downloads/submissions/30018/versions/9/download/ziphttp://cn.mathworks.com/matlabcentral/fileexchange/30018-oaxes-central-axis-lines-through-an-origi

空空如也

空空如也

1 2
收藏数 35
精华内容 14
关键字:

lines函数matlab

matlab 订阅