-
2021-04-18 02:56:57
Cell是Matlab中的一种数据类型,概念和结构类似。用大括号定义,括号里可以是任意类型的数据或矩阵。
关于cell的创建:
1.跟一般创建矩阵一样,直接使用C = {A B D E}这种形式,不过这里把"[]"改成了"{}"
2.使用cell创建cell,C= {C1 C2},这里C1和C2都是cell类型,直接把C1
C2作为一个cell得到的C3是一个1x2的cell数组;使用C3 = [C1
C2],是使用C1和C2的内容来创建cell数组
3.使用cell函数,A=cell(2,2),创建一个空的2x2的cell矩阵.
关于cell的访问:
1.X=C(s)使用这种"()"形式的返回的是cell类
2.X=
C{s}使用这种"{}"形式的返回的是cell中的内容
3.其他的基本上与通常的数组.矩阵访问一样了
4.A{1,1}(2,3:end)访问的是A中的第一个cell里面内容的第2行的第三个元素以后的所有元素
5.A{1,3}.name访问的是A中的A{1,3}cell里面结构的name值
6.cell的图形化显示使用命令cellplot(A)即可如B={[1;2]},这就定义了一个cell型的变量B,里面保存的是一个矩阵[1;2],要引用里面的数据只要在大括号里写上对应的下标即可,如B{1}。
下面我们给B再加个元素,我们可以这样定义B(2)={'hello'}。也可以利用引用的方法定义B{2}='hello'。第二种方法比第一种方法更方便所以更常用。
这样B就有两个元素了,B(1)是{[1;2]},B(2)是{'hello'},每个元素都是cell型的(注意和B{1}、B{2}的区别,B{1}是[1;2],B{2}是'hello')。
更多相关内容 -
matlab实现cell中数据保存为excel文件
2021-11-26 20:20:52咱们需要使用到的是具体位置的cell中数据,因此选择第二种访问方式,剩下的就是逻辑部分了 2. 上代码: clc; clear; ngle = [-180 -165 -150 -135 -120 -105 -90 -75 -60 -45 -30 -15 0 15 30 45 60 75 90 105 120 ...1. cell中的值如何访问:地址
咱们需要使用到的是具体位置的cell中数据,因此选择第二种访问方式,剩下的就是逻辑部分了
2. 上代码:clc; clear; ngle = [-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]; 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]; 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]; 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]; data={ngle',CFX',CFY',CMZ'}; %生成1x4的cell文件,每个cell均为25x1的数据;ngle'实现1x25数组转为25x1的数组 for i=1:4 filetitle=['D:\' 'data' num2str(i) '.xlsx'];%在D盘生成文件名变化的xlsx文件地址 dataTmp=data{1,i};%dataTmp是cell中对应的数组内容 xlswrite(filetitle,dataTmp);%生成文件名变化的xlsx文件 end
3. 这是运行过程中的变量值:
4. 运行后生成的文件: -
matlab提取cell元素
2020-01-13 18:00:15Cell是Matlab中的一种数据类型,概念和结构类似。用大括号定义,括号里可以是任意类型的数据或矩阵。 关于cell的创建: 1.跟一般创建矩阵一样,直接使用C = {A B D E}这种形式,不过这里把"[]“改成了”{}" 2.使用...Cell是Matlab中的一种数据类型,概念和结构类似。用大括号定义,括号里可以是任意类型的数据或矩阵。
关于cell的创建:
1.跟一般创建矩阵一样,直接使用C = {A B D E}这种形式,不过这里把"[]“改成了”{}"
2.使用cell创建cell,C= {C1 C2},这里C1和C2都是cell类型,直接把C1 C2作为一个cell得到的C3是一个1x2的cell数组;使用C3 = [C1 C2],是使用C1和C2的内容来创建cell数组
3.使用cell函数,A=cell(2,2),创建一个空的2x2的cell矩阵.
关于cell的访问:
1.
X= C(s)
使用这种"()“形式的返回的是cell类
2.X = C{s}
使用这种”{}"形式的返回的是cell中的内容
3.其他的基本上与通常的数组.矩阵访问一样了
4.A{1,1}(2,3:end)
访问的是A中的第一个cell里面内容的第2行的第三个元素以后的所有元素
5.A{1,3}.name
访问的是A中的A{1,3}cell里面结构的name值
6.cell的图形化显示使用命令cellplot(A)即可如B={[1;2]}
,这就定义了一个cell型的变量B,里面保存的是一个矩阵[1;2],要引用里面的数据只要在大括号里写上对应的下标即可,如B{1}。下面我们给B再加个元素,我们可以这样定义B(2)={‘hello’}。也可以利用引用的方法定义B{2}=’hello’。第二种方法比第一种方法更方便所以更常用。
这样B就有两个元素了,B(1)是{[1;2]},B(2)是{‘hello’},每个元素都是cell型的
(注意和B{1}、B{2}
的区别,B{1}是[1;2],B{2}是’hello’)。 -
Matlab三维数据画图和等高线数据提取
2021-04-20 00:47:481 目的将4组三维数据,每组数据画散点图(fig1),拟合出一个曲面(fig2),并将特定Z值的等高线投影到XY平面(fig3)。2 主要函数scatter3( ) 三维散点图scatter3(X,Y,Z,S,C)% 向量 X、Y 和 Z 指定点的位置,都是1维数组...1 目的
将4组三维数据,每组数据画散点图(fig1),拟合出一个曲面(fig2),并将特定Z值的等高线投影到XY平面(fig3)。
2 主要函数
scatter3( ) 三维散点图
scatter3(X,Y,Z,S,C)
% 向量 X、Y 和 Z 指定点的位置,都是1维数组。size(Z) = size(X) * size (Y)
% S 指定点的大小,默认50。也可以是一个和x,y长度一样的向量,设置不同点大小不同。
% 默认点的形状是圆形。正方形s,圆形o,上三角形^,菱形d
% C 指定的颜色绘制每个点。可以是字符串,RGB或者向量。使用向量可以不同点颜色不同
mesh( ) 三维网格图
mesh(X,Y,Z,C)
% 绘制线框网格
% 如果 X 和 Y 为向量,length(X) = n 且 length(Y) = m,其中 [m,n] = size(Z)。
% 矩阵 C 确定网格颜色,大小与 Z 相同
surf( ) 三维曲面图
surf(X,Y,Z,C)
% 默认的曲面颜色与 Z 成比例
% 使用 C 将指定曲面颜色
% 由于原始数据点偏少,最好先用griddata()插入更多数据点
contour( ) 等高线图
[C,h] = contour(X,Y,Z)
% 返回等高线矩阵 C(包含定义等高线的数据)和 Contour 对象 h
% 如只想画出Z在i处的等高线,则调用 [C,h] = contour(X,Y,Z,[i,i])。再调用 C 即可获得该等高线的数据
% h 为等高线对象。可设置粗细、颜色等属性
cell 数组
多组数据绘图,我倾向使用循环解决。以上命令的 X,Y 都是矩阵(数组),matlab里可以用 cell 数组 存储矩阵。
RGB 格式
maltab 的 RGB 不是 [255 255 255] 形式,而是 [1 1 1]。对应 RGB 数值除以255即可。
3 代码实现
clear;clc;close all;
%% data input
data1 = importdata('sta_1');
data2 = importdata('sta_2');
data3 = importdata('sta_3');
data4 = importdata('sta_4');
color = [0.8588 0.2745 0.19216; 0.8941 0.6627 0.1961; 0 0.5412 0.7765; 0.6275 0.2 0.5765]; % 自定义颜色 red, yellow, blue, purple
x = cell(4,1);y = cell(4,1);z = cell(4,1);
% cell元胞数组,可以存数组.目的是利用cell循环作图.
% x{i} = data{i}(:,1)
% 第i组数据(xyz均为1维数据)分别存入X{i},Y{i},Z{i}
for i = 1:4
eval(['x{',num2str(i) '}= data' num2str(i) '(:,1)']); % index 中调用变量,需要用到num2str()
eval(['y{',num2str(i) '}= data' num2str(i) '(:,2)']);
eval(['z{',num2str(i) '}= data' num2str(i) '(:,3)']);
end
real = [0.610293 0.559696 0.614283 0.63131]; % 需要画等高线的高度
%% fig.1: sactter
dot1 = {'s' 'o' '^' 'd'}; % dot shape
figure;
daspect([8 5 1]); % 坐标轴xyz刻度比例
hold on;
grid on;
for i = 1:4
scatter3(x{i},y{i},z{i},dot1{i},'MarkerFaceColor',color(i,:),'MarkerEdgeColor',color(i,:));
end
view(40,25);
xlabel('x');ylabel('y');zlabel('z');;xlim([0 16]);ylim([0 10]); title('xyz');
set(gca,'xTick',[0:2:16],'yTick',[0:2:10],'LineWidth',2,'FontSize',20,'GridLineStyle' ,'--');
legend('1','2','3','4','location','northeast');
hold off;
% print('-depsc','-r800','fig1.eps');
%% surface
X = cell(4,1);Y = cell(4,1);Z = cell(4,1);
Xm = cell(4,1);Ym = cell(4,1);Zm = cell(4,1);
figure
daspect([8 5 1]); % 坐标轴xyz刻度比例
hold on;
grid on;
for i = 1:4
[X{i},Y{i},Z{i}] = griddata(x{i},y{i},z{i},linspace(-1,17)',linspace(-1,11),'v4');
C = zeros(size(X{i}));
C(:,:,1) = color(i,1);C(:,:,2) = color(i,2);C(:,:,3) = color(i,3);
surf(X{i},Y{i},Z{i},C);
% shading flat;
end
legend('1','2','3','4','location','northeast');
for i = 1:4
% shading flat;
Xm{i} = -1:17;Ym{i} = -1:17;Zm{i} = real(i)*ones(19);
Cm = zeros(size(Zm{i}));
Cm(:,:,1) = color(i,1);Cm(:,:,2) = color(i,2);Cm(:,:,3) = color(i,3);
mesh(Xm{i},Ym{i},Zm{i},Cm); % 添加一张网格平面
end
alpha(0.8); % transparency
view(40,25);
xlabel('x');ylabel('y');zlabel('z');xlim([0 16]);ylim([0 10]); title('xyz');
set(gca,'LineWidth',2,'FontSize',20,'xTick',[0:2:16],'yTick',[0:2:10],'GridLineStyle' ,'--');
hold off;
%print('-depsc','-r800','fig2.eps');
%% contour
cm = cell(4,1);
hm = cell(4,1);
figure
hold on;
for i = 1:4
[cm{i},hm{i}]=contour(X{i},Y{i},Z{i},[real(i),real(i)]); % cm(i)保存了等高线的数据
set(hm{i},'color',color(i,:),'LineWidth',2); % ,'ShowText','on'
end
legend('1','2','3','4','location','northeast');
xlabel('x');ylabel('y');xlim([0 16]);ylim([0 10]);title('xyz');
set(gca,'LineWidth',2,'FontSize',20,'xtick',[0:1:16],'ytick',[0:0.5:7]);
hold off;
% print('-depsc','-r800','fig3.eps');
-
用matlab提取cell中的某行某列的值
2018-04-21 11:56:45如下,node是一个2x1的cell,每个cell中有矩阵16x23提取第一个cell中,第二行第三列的元素使用 node{1,1}(2,3);结果:ans = -0.8593 -
matlab处理excel数据【怎么用MATLAB从excel中提取部分数据】
2021-04-18 03:50:43已经把excel的一列导入到matlab的工作区,怎么计算这一列数的均值、标准差、最小值、最大值以及中位数?把这个EXCEL放到matlab目录下的work里,假设名为1.xls,然后在matlab里A=xlsread('1.xls'),即可导入,这时A是一个... -
matlab中cell数组用法
2018-02-10 09:07:31第一次接触cell数据是因为做一个数据处理时由于数据量太大excel的vlookup奔溃而数据库不熟练只能硬着头皮强行导入matlab匹配,其中有一列数据为年月日时分秒,还好matlab有cell数组,中间使用也遇到一些问题,现在... -
matlab 矩阵合并 / cell元素提取 / 修改矩阵内的某个元素
2020-12-01 10:04:54矩阵合并 / cell元素提取 / 修改矩阵内的某个元素 -
matlab从图表中提取数据
2020-04-09 20:47:06有如下的波形图,如何从中精确提取出全部的数据: 1,将波形图片(截图)保存为test.png或test.jpg,并将图片放于matlab工作目录中,如...% 提取图片中的曲线数据 clear,clc,close all %% 图片与曲线间的定标 im=i... -
matlab提取股票数据代码-zoomtuckerkdd:Zoomtuckerkdd
2021-05-28 02:00:47matlab提取股票数据代码快速且高效存储的Tucker分解,用于回答各种时间范围查询 这是提交给KDD 2021的“用于响应各种时间范围查询的快速和内存有效的Tucker分解”的代码。 代码信息 所有代码均由MATLAB 2019b编写。 ... -
MATLAB|figure中提取曲线坐标数据的方法
2021-04-18 02:49:101. 问题描述MATLAB数据处理中看可能遇到这样的问题:数据处理过程,调用第三方工具箱进行分析,得到了预期的图像,但无法提取图像曲线对应的数据。如得到如下曲线:需要提取曲线中的数据,进行进一步的分析。如果在... -
MATLAB如何提取结构体中数据
2021-05-08 14:22:121. 结构数组的创建MATLAB提供了两种定义结构的方式:直接应用和使用struct函数。a) 使用直接引用方式定义结构与建立数值型数组一样,建立新struct对象不需要事先申明,可以直接引用,而且可以动态扩充。比如建立一个... -
Matlab 单元数组cell里的数据提取/分开
2015-07-24 07:11:08我现在有一个单元数组比如 ff(1)= '1 2 3 4 5 6 7 8' ...现在我想将ff(1)的size变成1 x 8, 即我想将cell里的数据全部分开,这样可以方便我调用里面 的数据,比如我想使用ff(1,4)即可得到4. 请问该怎么做? -
(转)matlab中cell数组用法
2019-10-16 15:27:42原创 matlab中cell数组用法 ... -
Matlab如何提取fig文件中的数据
2020-09-19 23:32:00本文详细介绍Matlab如何提取fig文件中的数据,并提供原创的m函数,可方便实现各类figure图形提取数据。 fig文件作为Matlab中的图形文件,其实原始数据是会存储在figure对象中的,那么通过get函数获取figure对象中... -
Matlab针对Cell数组,如何进行批量处理:Cell2mat和cellstr的运用 ;matlab cell转换string
2020-05-13 13:50:21ImageTime = ImageName(2:end,2); CamTime = CamName(2:end,2);...a = cell2mat(ImageTime); a2 = a(:,2:end); ImageTime = cellstr(a2); b =cell2mat(CamTime); b2 = b(:,2:end); CamTime = cellstr(b2); -
从Matlab的Fig图片中提取数据,并保存成csv文件
2021-08-22 15:39:35从Matlab的Fig图片中提取数据,并保存成csv文件1.Fig图像是由单条曲线绘制2.Fig图像是由双条曲线绘制3.小结 本人亲自实测有效,但能力有限,目前仅用代码测试了Figure图片单线条和双线条的提取(多线条可模仿双线条... -
Matlab 提取struct中的数据
2020-03-17 06:31:25dec 是一个嵌套的 struct 类型数据,如下图: dec 有两个 Field,每个 Field 又是一个 struct 类型的数据: a = dec.input 即可得到 input, 有3个field,每个field 下有3个值。 如何取得每个 field 下的数据: ccc... -
matlab cell取一列,MATLAB cell & struct
2021-04-21 15:45:17但是用cell数据类型之前,要先初始化。a=cell(n,m)那么就把a初始化为一个n行m列的空cell类型数据。如何赋值呢?a{1,1}=rand(5)那么a的1行1列的单元中存储的就是一个随机的5×5的方阵了。那么要用第一个单元中的方阵... -
MATLAB中坑爹的cell使用笔记汇总-自己备份
2021-04-20 11:41:59在MATLAB中,数值数组的存储单元内存储的数据类型必须是一模一样的,而且各元素的长度要一致(其它语言也是这样),即数值数组的存储单元内储存的数据必须是相同长度的数值类型。cell也称为元胞,cell数组内可以存储... -
【原创】Matlab存储&读取cell array
2021-04-18 07:07:131)存储save('Timeshifted_Sig_Mat.mat','Timeshifted_Sig_Mat');2)读取S1 = load('Timeshifted_Sig_...BP1 = struct2cell(S1);BP2 = BP1{1,1};%Necessary.Timeshifted_Sig_Group_1 = BP2{1,1};Timeshifted_Sig_... -
MATLAB提取不规则txt文件中的数值数据(简单且实用)
2022-06-30 18:19:48matlab读取不规则txt文件中的数据。 -
matlab读取xls,xlsx数据,返回double数值为空,目标数据为cell类型的数据,如何解决?
2022-05-31 11:11:37matlab读取xlsx数据加载不出,如何解决? cell数据如何转换为doubel类型 -
【求助】matlab怎样提取图片的数据呢,矩阵数据
2021-04-30 07:27:15%a point belongs to the cluster with the most votes %*** If they want the cluster2data cell find it for them if nargout > 2 cluster2dataCell = cell(numClust,1); for cN = 1:numClust myMembers = find... -
MATLAB 基础知识 数据类型 日期和时间 提取或分配日期时间数组的日期和时间分量
2021-06-05 15:51:45本文演示了从现有日期时间数组中提取日期和时间分量的两种方法:访问数组属性或调用函数。然后,再演示了如何通过修改数组属性来修改日期和时间分量。 访问属性以检索日期和时间分量 创建一个 datetime 数组。 t = ... -
Matlab实现图像数据集的特征提取与分类器设计
2021-07-01 21:39:24包含内容: ...数据集读入函数代码: function [trainData,trainLabels,testData,testLabels] = ReadDataSet(fileRoot,imageFormat,trainNum,testNum) %读取数据集 dataSetFiles = dir(strcat(fileRoot,'\s* -
matlab从txt文件中提取出有效信息
2022-05-07 16:44:44我们的目的是要提取出valid后面的两行数据。 实现 解释一些函数 fgetl 用法,tline = fgetl(fileID),依次返回文件中的每一行,并删除换行符。 regexp,匹配正则表达式。例如在本文中的用法是根据空格和逗号将一行... -
MATLAB中如何提取二维坐标
2021-04-20 15:25:51waitfor(hf,'WindowButtonMotionFcn',[]) if iscell(ht) for jj=1:length(ht) set(hp(jj),'hittest',ht{jj}) end else set(hp,'hittest',ht) end selType = get(hf,'SelectionType'); % Mouse-Button recognition..... -
包含所有信息的 ADCP 数据的 3 ...:在 MATLAB 上 ADCP(声学多普勒电流剖面仪)数据的 3 D 绘图。-matlab开发
2021-05-29 03:27:39请完成以下步骤: 脚步: 1. 从 VMT 软件生成摘要... 文件 tran1.xlxs 到 tran14.xlxs 和 transect1.xlxs 到 transect14.xlxs 是从 Transect_Summary_file 中包含的 excel 文件 transec1 到 transec14 中提取的(可在...