0
点赞
收藏
分享

微信扫一扫

MATLAB学习日记

ZGtheGreat 2022-04-25 阅读 65
matlab

4.4wrf

 

4.18

a=sum(A)  %列求和

%行求和b=sum(A,2)

c=sum(A(:)) %矩阵求和

假定A为一个矩阵:

sum(A)以矩阵A的每一列为对象,对一列内的数字求和。

sum(A,2)以矩阵A的每一行为对象,对一行内的数字求和。

sum(A,3)求和

假设A为三通道图像,则sum(A,3)运算后的值为每个通道对应位置~的值各自相加,比如在位置p三通道像素值分别为r,g,b,则在p位置运算后的值为r+g+b,具体看下面的代码

A=[1 2 3;4 5 6;7 8 9]  
A =  
  
     1     2     3  
     4     5     6  
     7     8     9
>> bb=repmat(A,[1 1 3])  %%是一个处理大矩阵且内容有重复时使用,其功能是以A的内容堆叠在(MxN)的矩阵B中,B矩阵的大小由MxN及A矩阵的内容决定,如果A是一个3x4x5的矩阵,有B = repmat(A,2,3)则最后的矩阵是6x12x5
bb(:,:,1) =  
  
     1     2     3  
     4     5     6  
     7     8     9  
bb(:,:,2) =  
  
     1     2     3  
     4     5     6  
     7     8     9  
bb(:,:,3) =  
  
     1     2     3  
     4     5     6  
     7     8     9 
>> cc=sum(bb,3)  
cc =  
  
     3     6     9  
    12    15    18  
    21    24    27

4.22

matlab把矩阵变成数组

1.

第一步打开matlab,输入a=[1 2 3;2 4 5;6 7 8],创建一个3行3列的a矩阵,

2.

第二步输入a(:),将二维矩阵转化为一维数组,

3.

第三步按回车键之后,可以看到成功转化成一维数组了,

4.

第四步输入reshape(a,[],1),也可以将二维矩阵转化为一维数组

为什么matlab运行不成只显示文件名? 

应该是你之前用了ctrl+c复制了代码。在命令窗口点一下,然后按ctrl c,是不是就出现>>了?这时就可以运行了:)

4.23

matlab如何在循环中修改变量名称并再次使用?《未弄清楚》

可以用字符串拼接,例如J(1+i),里面是i是数值型,可以先转换为字符串,然后拼接。

J(1+i)可以这样写:['J(',num2str(1+i),')']

例如,当i=1时, ['J(1',num2str(1+1),')']则为J(2)

clc
clear
b=zeros(100,40,50);
for n=1:10
eval([‘a’,num2str(n),’=’,’b(n:10:100,:,:)’,’;’]);      ?????
end

结果如下:
结果

  

《未弄清楚》

   % %     for iii=1:r
% %     lonlat=outrc(iii,:);      %不是(:;1); outrc(:,1)提取第一列  (a,b) a是行
%     for ii = 1:r  %%%循环出来是矩阵不是数组
%         for iii =1:c
%             idx(ii);idy(iii);
% %         preclonlat = prec(idx(c),idy(r),:)  %%%提取出来是矩阵不是数组                                                                                                                                              ;
% %       temp2(k,:)=reshape(a,1,length(a)); %????reshape(X,M,N,P)也就是把X改写成MXN(行 列)个单独的矩阵,而此时这样的矩阵恰好为P个
% %         
%     end

5

database表和输出命令行的区别   有科学计数法 e+

是否要声明函数变量(问题未解决)

正在上传…重新上传取消正在上传…重新上传取消

4.24

如何在 matlab 和 excel间进行数据导入导出?
 
excel-->matlab 数据读取:
A = xlsread('Excel路径+Excel的名称','工作表名称')

例子:

A = xlsread('创新班.xlsx','Sheet2')

A = xlsread('创新班.xlsx','Sheet2','a1:c1') %读取a1 b1 c1的数据
 

不写工作表名称,默认是第一个。

 matlab-->excel 数据写入
xlswrite('Excel路径+Excel的名称','需要输出的矩阵名称','工作表名称')

例子:

test = [1 2 3;4 5 6;7 8 9;10 11 12];

xlswrite('test.xlsx',test,'Sheet2')
 

 1 angle = [-180 -165 -150 -135 -120 -105 -90 -75 -60 -45 -30 -15 0 15 30 45 60 75 90 105 120 135 150 165 180];
 2 
 3 CFX = [0.043011 0.055914 0.11613 0.24086 0.42581 0.62366 0.75699 0.7914 0.64946 0.4172 0.20215 0.08172 0.060215 0.13763 0.33978 0.61935 0.84301 0.96344 0.94194 0.84301 0.65806 0.44731 0.19355 0.055914 0.043011];
 4 
 5 CFY = [0.14383 0.083721 0.015027 -0.092308 -0.13524 -0.096601 0.01932 0.18247 0.25975 0.20823 0.045081 -0.10089 -0.19964 -0.74919 -0.80072 -0.71055 -0.5517 -0.28122 -0.015027 0.22111 0.38426 0.46583 0.44866 0.3585 0.14812];
 6 
 7 CMZ = [0.030108 0.056344 0.07957 0.083441 0.073118 0.054624 0.027527 -0.018495 -0.068387 -0.10495 -0.11183 -0.083871 -0.045161 0.037849 0.076989 0.04172 0.025376 0.0086022 0 -0.008172 -0.014624 -0.020645 -0.055484 -0.027097 0.030108];
 8 
 9 data = [angle', CFX', CFY', CMZ'];                   % 将数据组集到data
10 [m, n] = size(data);            
11 data_cell = mat2cell(data, ones(m,1), ones(n,1));    % 将data切割成m*n的cell矩阵
12 title = {'angle', 'CFX', 'CFY', 'CMZ'};              % 添加变量名称
13 result = [title; data_cell];                        % 将变量名称和数值组集到result
14 s = xlswrite('wind.xls', result);                    % 将result写入到wind.xls文件中

————————————————
 

举报

相关推荐

0 条评论