我有以下代码:
% Code to import data from .csv files into cell arrays called strain_trans_data, strain_ax_data, and load_data
strain_trans_data = cell2mat(strain_trans_data);
strain_trans_data = strain_trans_data*-1; % trans strain to -trans strain
strain_ax_data = cell2mat(strain_ax_data);
load_data = cell2mat(load_data);
new_trans_data = [];
new_ax_data = [];
new_load_data = [];
regressions = {'File name','y-int axial','slope axial','y-int trans','slope trans','v'};
% Rest of the code...
代码从一些.csv文件中导入数据,我通过执行线性回归来分析这些文件。为了执行线性回归并绘制数据,我需要将单元格数组转换为矩阵。当我导入大量数据(从10个以上的.csv文件中导入11个文件)时,strain_trans_data = cell2mat(strain_trans_data);
和strain_ax_data = cell2mat(strain_ax_data);
可以正常工作,它们只是将单元格数组转换为矩阵。由于有11组数据,因此单元格数组为nx11
,最终矩阵为nx11
。
由于某种原因,load_data = cell2mat(load_data);
代替了一个列,因此初始单元格数组为nx11
,而最终矩阵为nx10
。我尝试使用其他数据集(小于10个),并且此问题似乎仅在这种情况下发生。奇怪的是strain_trans_data = cell2mat(strain_trans_data);
和strain_ax_data = cell2mat(strain_ax_data);
都可以正常工作,这只是最后一次转换带来了问题。知道为什么会这样吗?
编辑:我尝试进入cell2mat函数以查看正在发生的情况,并找到了发生问题的步骤。在m
下的图像中是一个nx11 cell
然后由于某种原因将其更改为nx10 double
。单元格数组中的数据可能有问题吗?
答案 0 :(得分:0)
我无法猜测您输入到NestedScrollView
中的单元格数组,但是我的猜测是您在单元格数组中有一列具有空单元格。
我可以通过这种方式重现您的问题:
<kendo-grid-column-group title="{{year}}" [headerStyle]="{'text-align': 'center'}" width="380">
<ul *ngFor="let month of keys(); let i = index">
<li>
<kendo-grid-column field="{{month}}" class="no-padding" title="{{month}}" [filterable]="false" [sortable]="false" width="35">
<ng-template kendoGridCellTemplate let-dataItem let-color="getColor(year,i,dataItem.ca)">
<span class="whole-cell" [ngStyle]="{'background-color': color.color,'color': color.textColor,'font-weight':'bold','height':'25px','vertical-align': 'middle'}">
<label>{{color.Date}}</label>
</span>
</ng-template>
</kendo-grid-column>
</li>
</ul>
</kendo-grid-column-group>
cell2mat
现在看起来像这样:
C = num2cell(magic(4));
[C{:,3}] = deal([]);
现在我们应用C
:
C =
4×4 cell array
[16] [ 2] [] [13]
[ 5] [11] [] [ 8]
[ 9] [ 7] [] [12]
[ 4] [14] [] [ 1]
cell2mat
看起来像这样:
A = cell2mat(C);
A
是4x4单元格数组,A =
16 2 13
5 11 8
9 7 12
4 14 1
是4x3数字数组。