我对matlab比较陌生,所以这可能是一个简单的问题,我为此道歉。
我有一个包含各种尺寸单元格的单元格数组。一些是空矩阵(0x2空矩阵,0x3空矩阵,0x16空矩阵......类似的东西),有些不是空矩阵。我试图像这样绘制单元格数组:
for n = 1:numel(cellarray)
plot(cellarray{1}(n))
hold on
end
但是因为我有一些空矩阵,当我尝试运行这个循环和绘图时,我收到一条错误消息。
有没有办法可以将单元格数组中的空矩阵更改为相同尺寸的零矩阵,以便我可以在没有错误信息的情况下绘制它?非常感谢您的帮助!
答案 0 :(得分:1)
用NaN填充空细胞。 Matlab不会绘制NaN。如果您拥有相同尺寸或双精度的所有内容,那么作为初学者就更容易理解,仅供参考。
所以,在你将任何东西放入你的Cell中之前,称为“cellarray”,请执行以下操作:
Cellarray = repmat({NaN},3,3); %无论你的细胞大小是多少
答案 1 :(得分:1)
您的所有代码正在执行 - 或尝试执行 - 正在打印单元格数组的第一个元素的第n个元素。由于单元格数组的第一个元素包含少于n个元素,因此您将收到显示在注释中的错误消息。
从你的描述中听起来好像你期望它绘制单元格数组的第n个元素 - 它没有这样做。
你最想要的,
for n = 1:numel(cellarray)
if ~isempty(cellarray{n})
plot(cellarray{n})
hold on
end
end
答案 2 :(得分:-1)
您可以使用嵌套for循环在单元格数组的每个元素中实现零值。
'use strict';
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View
} from 'react-native';
import Carousel from 'react-native-carousel';
import FactsApiFetcher from './facts-api-handler/facts-api-fetcher'
export default class AllRand extends Component
{
constructor(props)
{
const InitialnumberOfPages = 2;
super(props);
this.state =
{
numberOfPages: InitialnumberOfPages,
Pages: this._setInitialPages(InitialnumberOfPages)
};
}
_onPageSwitchAnimateEnd()
{
let updatedNumberOfPages = this.state.numberOfPages + 1;
let newArr = this._addPage(updatedNumberOfPages);
this.setState({
numberOfPages: updatedNumberOfPages,
Pages: newArr
});
}
render()
{
return (
<Carousel animate={false} hideIndicators={false} onPageChange={() => this._onPageSwitchAnimateEnd()}>
{ this.state.Pages }
</Carousel>
);
}
_setInitialPages(numberOfPages)
{
let tempArr = [];
for(let i = 0; i < numberOfPages; i++)
{
tempArr.push(<View key={ i } style={ styles.shit1 }><FactsApiFetcher/></View>);
}
return tempArr;
}
_addPage(updatedNumberOfPages)
{
return this.state.Pages.concat([<View key={ updatedNumberOfPages - 1 } style={ styles.shit1 }><FactsApiFetcher/></View>]);
}
}
const styles = StyleSheet.create({
shit1: {
alignSelf: 'stretch',
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#FFFF00'
}
});
AppRegistry.registerComponent('AllRand', () => AllRand);
你的矩阵是m个单元格的lxn数组。