matlab 绘制垂直间距图

hjzp0vay  于 2022-11-24  发布在  Matlab
关注(0)|答案(2)|浏览(197)

我需要从一组A扫描数据中生成一个B扫描数据。我收到的A扫描数据以这样的方式排列,即行代表A扫描数据中每个点的振幅,列代表收集的每个A扫描数据。我的数据如下所示:

4855    4641    4891    4791    4812    4812
4827    4766    4862    4745    4767    4785
6676    5075    6903    6879    6697    6084
7340    6829    7678    7753    7263    6726
6176    6237    6708    6737    6316    5943
12014   10467   10915   10914   10124   10642
8251    7538    7641    7619    7269    7658
6522    6105    6132    6136    5921    6227
5519    5287    5330    5376    5255    5237
4904    4784    4835    4855    4794    4758
4553    4527    4472    4592    4469    4455
4298    4323    4291    4293    4221    4238
4167    3957    4089    3991    3938    3907
3789    3721    3777    3777    3643    3596
3736    4615    3639    2814    3638    2782
4413    5286    4248    3998    4370    4199
5994    6896    6134    5548    6102    6161
8506    9020    7841    8060    8663    8941
12347   12302   10639   11151   12533   12478
18859   18175   15035   15938   18358   18160
27106   26261   22613   24069   27015   27114
32767   32601   32767   32767   32767   32767
32767   32767   32767   32767   32767   32767
32767   32767   32767   32767   32767   32767
32767   32767   32767   32767   32767   32767
32767   32767   32767   32767   32767   32767
32767   32767   32767   32767   32767   32767
26416   26459   32767   32767   26308   26945
6523    6900    13327   16665   6616    6477
-14233  -14011  -8554   -5649   -13956  -13858
-28128  -26784  -26157  -24055  -27875  -28374
-28775  -27905  -30348  -26285  -28918  -29066
-20635  -19776  -21144  -21548  -22107  -22759
-16915  -15742  -15908  -17398  -19600  -20143

这只是数据的示例,它是.txt格式。
A-scan dataB-scan data显示器
我面临的问题是如何将这些数据绘制成B超数据。Matlab会很棒(虽然其他方法也很棒)。请分享你绘制B超数据的方法。

vmjh9lq9

vmjh9lq91#

滑动实验室

在Scilab上,你可以使用read函数,它读取格式化的文本文件,你至少需要知道列数。要增加垂直间距,你应该为每一整列增加一个常量值i*d,其中i是列数。
我把你给的例子放在一个文本文件里,这样我就可以阅读它,然后我把它画出来。

//read(): first argument is file path 
//        (or file name, if you change current directory)
//        second argument is number of lines (-1 if unknown)
//        third argument is the number of columns
B = read("file.txt",-1,6);

d  = 1000; //vertical spacing
Bs = B;    //copy of the original data

for i = 1 : size(Bs,'c')
    //loop adding constant to each column
    Bs(:,i) = Bs(:,i) + (i-1) * d;
end

//simply plot the matrix
plot2d(Bs);

Scilab中的结果为:

MATLAB语言
在MATLAB中,你可以使用importdata函数,它也可以读取格式化的文本文件,但至少需要文件名。你还应该手动添加垂直间距。

%call importdata() after changing current directory
B = importdata("file.txt");

d  = 1000; %vertical spacing
Bs = B;    %copy of the original data

for i = 1 : size(Bs,2)
    %loop adding constant to each column
    Bs(:,i) = Bs(:,i) + (i-1) * d;
end    

%plot the modified matrix
plot(Bs);

MATLAB中的结果为:

gcmastyq

gcmastyq2#

%ploting columnspace
 figure(1)
 plot3([0 columnspaceA(1,1)],[0 columnspaceA(2,1)],[0 
 columnspaceA(3,1)],'y- ^', 'LineWidth',3) 
  

 hold on
 plot3([0 columnspaceA(1,2)],[0 columnspaceA(2,2)],[0 
 columnspaceA(3,2)],'y-^', 'LineWidth',3) 
   
 %ploting leftynullspace
 plot3([0 leftnullspace(1,1)],[0 leftnullspace(2,1)],[0 
 leftnullspace(3,1)],'g','linew',3)
        
     
h=fmesh(@(s,t)columnspaceA(1,1)*s+columnspaceA(1,2)*t,@(s,t)columnspaceA(2,1)*s+columnspaceA(2,2)*t,@(s,t)columnspaceA(3,1)*s+columnspaceA(3,2)*t,[-1 1]);

figure(2)
%ploting nullspace
hold on
 plot3([0 nullspace(1,1)],[0 nullspace(2,1)],[0 nullspace(3,1)],'g-^','LineWidth',3) 
        

% %ploting rowspace
 plot3([0 rowspaceA(1,1)],[0 rowspaceA(2,1)],[0 rowspaceA(3,1)],'r-^','LineWidth',3) 
       

 hold on
 plot3([0 rowspaceA(1,2)],[0 rowspaceA(2,2)],[0 rowspaceA(3,2)],'r-^','LineWidth',3) 
       
 h1 = fmesh(@(s,t)rowspaceA(1,1)*s+rowspaceA(1,2)*t,@(s,t)rowspaceA(2,1)*s+rowspaceA(2,2)*t,@(s,t)rowspaceA(3,1)*s+rowspaceA(3,2)*t,[-1 1]);

相关问题