小猪猪的matlab学习笔记
目录
9.多坐标轴(参考:Matlab关于函数patch的用法 – MATLAB中文论坛)
1 删除cell数组中的NaN数据
A(cellfun(@(x) any(isnan(x)),A))=[];
如果NaN用0替换
A(cellfun(@(x) any(isnan(x)),A))={'0'}

2 删除元组里面的空数据

indx(find(~cellfun('isempty', indx)))
3 数据格式转换
cell2mat:将cell转换为mat的char型
str2num:将char转换为double型
cellstr:将char转还为cell
num2str:将double转换为char
num2cell:将double转换为cell
int2str:将int转换为char型
datestr:将datetime转换为char型
4 输出视频的音乐
因为喜欢看抖音短视频,喜欢视频中的音乐,想提取视频中的音乐,matlab代码如下
[y, Fs] = audioread('蔡徐坤.mp4');%并返回样本数据 y 以及该数据的采样率 Fs
audiowrite('蔡徐坤.wav',y, Fs);%输出wav音频文件文件
sound(y,Fs)%播放音乐
5 含有NaN的相关数据处理
求和:nansum
平均:nanmean
标准差:nanstd
isnan判断数值型数组是否为空,返回值1代表为空,0代表不为空




6 cell索引查找
第一种情况
>> a={2,3,4,5,6,7,10,11,10};
>> idx=find(a==10)
未定义与 'cell' 类型的输入参数相对应的运算符 '=='。
>> idx=find([a{:}]==10)
idx =
7 9
通过[a{:}]转换数组,后用find查找索引
注意:cell数组只能数值型或者单字符的数据 有效
第二种情况
>> a={'1','error','3','4','error','7'};
>> idx=find(strcmp(a,'error'))
idx =
2 5
注意:strcmp()方法能够同时检索字符和字符串
第三种情况
>> a={'1','error','3','4','error','7'};
>> idx = find(ismember(a,'error'))
idx =
2 5
注意:
能够检索字符串和单字符,但不能够检索数值类型的数据,也不能对包含混合数据类型(同时包含数值和字符或字符串)的cell进行检索。
速度较慢
matlab如何输入较长的字符串:matlab字符串换行
str=['zzzzzzzzzzz',...
'wwwwwwwwwww']

7、MATLAB获取当前路径的三种方法:
1.方法一:pwd
>> pwd
ans =
'D:\matlabcode'
2.方法二:cd
>> cd
D:\matlabcode
3.方法三:获取what结构体的path数据
>> s=what;
>> p=s.path
p =
'D:\matlabcode'
8、MATLAB怎么声明NaN数组:
zeros(5,3)*NaN

9.多坐标轴(参考:Matlab关于函数patch的用法 – MATLAB中文论坛)
str={'欢迎你';'北京';'朋友'};
h=axes('Position',[0.1 0.1 0.9 0.9]);
h1=axes('Position',[0.23 0.15 0.9 0.9]);
axes('Position',[.35 .35 .7 .9]); %创建两个坐标轴
text(.025,.6,str(1),'FontSize',11); %在当前(第二个)坐标轴上标注
set(gcf,'CurrentAxes',h) %返回到第一个坐标轴的控制
text(.025,.6,str(2),'FontSize',11); %在第一个坐标轴上标注
set(gcf,'CurrentAxes',h1)
text(.025,.6,str(3),'FontSize',11);

10 绘制渐变曲线
clear,clc;
x=1:0.1:20;
y=sin(x);
patch([x NaN],[y NaN],[y NaN],'edgecolor','flat','facecolor','none')
colormap jet
colorbar

11、matlab绘制椭球
clear,clc
a=6;
b=3;
c=3;
[x, y, z] = ellipsoid(0,0,0,a,b,c,50);
figure
h=surf(x, y, z,'FaceAlpha',0.5,'EdgeColor','none');
axis equal

12、怎么获取字段中的数值
str='猪猪侠21.jpg';
A=isstrprop(str,'digit');
B=str(A);
C=str2num(B)

13 非连续数据分割
function data=find_inter(x)
% x=[1 ...
% 4 5 ...
% 7 8 9 ...
% 11 12 13 ...
% 20 21 22 23 ...
% 25];
% x=num;
if length(x)==1
data=cell(1,1);
data{1}=x;
else
inter=find(diff(x)~=1);
data=cell(1,length(inter)+1);
if ~isempty(inter)%不为空的情况下就是单一个数据列,
for i=1:length(inter)+1
if i==1
data{1}=x(1:inter(1));
elseif i==length(inter)+1
data{i}=x(inter(i-1)+1:end);
else
data{i}=x(inter(i-1)+1:inter(i));
end
end
else
data{1}=x;
end
end
end


浙公网安备 33010602011771号