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文件中
————————————————